Javascript Reactjs/Typescript无法将项数组作为属性传递给子项
我在一个项目中有几个类,是用createreact应用程序创建的,我想将一个对象数组向下传递给子元素,如下所示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
// 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[]}) => (