我已经学习了本教程,但要求有点不同。我有一个函数getArrayList
,它应该生成一个ItemComponent
的数组。返回的组件将接收作为数组的items道具。
function getArrayList(ItemComponent) {
return null // return a new component that renders an array of ItemComponent
}
class Link extends React.Component {
render() {
return <a href={ this.props.item.href }>{ this.props.item.text }</a>;
}
}
const LinkList = getArrayList(Link);
document.body.innerHTML = "<div id='root'></div>";
const rootElement = document.getElementById("root");
if(LinkList) {
let items = [
{ href:"https://www.yahoo.com", text:"Yahoo" },
{ href:"https://www.bing.com", text:"Bing" }
];
ReactDOM.render(<LinkList items={items} />, rootElement);
console.log(rootElement.innerHTML);
}
您可以执行类似的操作
const getArrayList = (ItemComponent) => {
const ListComponent = ({items}) => {
return <div>{items.map(item => <ItemComponent item={item} />)}</div>
}
return ListComponent
}
您可以这样做:
const LinkList = (items) => (
<div>
{items.map(i => (
<Link key={i.href} item={i}/> // pass the item as props ...
))}
</div>
);
注意:当您动态创建组件列表时,react要求key
属性。