Javascript Reactjs/Typescript无法将项数组作为属性传递给子项

Javascript Reactjs/Typescript无法将项数组作为属性传递给子项,javascript,arrays,reactjs,typescript,properties,Javascript,Arrays,Reactjs,Typescript,Properties,我在一个项目中有几个类,是用createreact应用程序创建的,我想将一个对象数组向下传递给子元素,如下所示 // Items.tsx import * as React from 'react'; import ItemTable from './ItemTable'; import { IItem } from './ItemRow'; class Items extends React.Component { private items = IItem[]; compo

我在一个项目中有几个类,是用createreact应用程序创建的,我想将一个对象数组向下传递给子元素,如下所示

// Items.tsx
import * as React from 'react';
import ItemTable from './ItemTable';
import { IItem } from './ItemRow';

class Items extends React.Component {
    private items = IItem[];
    componentWillMount() {
      // connect to backend service and retrieve all Items
      items = get_items();
    }

    render() {
      return (
        <ItemTable items={this.items} />
      );
    }
}

export default Items;

////////////////////////////////////////////////////////////////

// ItemsTable.tsx
import * as React from 'react';
import { Table } from 'reactstrap';
import ItemRow from './ItemRow';

let ItemTable = (items: IItem[]) => (
  <Table>
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
        <th>Website</th>
      </tr>
    </thead>
    <tbody>
        {items.map(item => (
          <ItemRow item={item} />
        ))}
    </tbody>
  </Table>
);

export default ItemTable;

////////////////////////////////////////////////////////////////

// ItemRow.tsx
import * as React from 'react';

export interface IItem {
  name: string;
  description: string;
  website: string;
}

let ItemRow = (item: IItem) => (
  <tr>
    <td>{item.name}</td>
    <td>{item.description}</td>
    <td>{item.website}</td>
  </tr>
);

export default ItemRow;
//Items.tsx
从“React”导入*作为React;
从“/ItemTable”导入ItemTable;
从“/ItemRow”导入{IItem};
类项扩展了React.Component{
私人项目=项目[];
组件willmount(){
//连接到后端服务并检索所有项目
items=获取_items();
}
render(){
返回(
);
}
}
导出默认项;
////////////////////////////////////////////////////////////////
//ItemsTable.tsx
从“React”导入*作为React;
从“reactstrap”导入{Table};
从“/ItemRow”导入ItemRow;
let ItemTable=(items:IItem[])=>(
名称
描述
网站
{items.map(item=>(
))}
);
导出默认项表;
////////////////////////////////////////////////////////////////
//ItemRow.tsx
从“React”导入*作为React;
导出接口项{
名称:字符串;
描述:字符串;
网站:string,;
}
让ItemRow=(item:IItem)=>(
{item.name}
{item.description}
{item.website}
);
导出默认项行;
遗憾的是,在构建/编译过程中,我不断收到一个错误,指出类型
'{items:IItem[];}'
不能分配给类型
'items:IItem[]
。请注意,与第一个实例相比,第二个实例中缺少大括号

我假设Typescript或React显然是将数组粘贴到对象中,而不是像我预期的那样传递数组


有人知道我在这里做错了什么吗?

您需要将道具传递给您的
项目表,而不是直接传递项目

let ItemTable = (items: IItem[]) => (
应该是

let ItemTable = (props: {items: IItem[]}) => (
  const {items} = props;
也可以简称为

let ItemTable = ({items}: {items: IItem[]}) => (