Arrays 遍历React/Jsx中的对象列表
我在尝试遍历JSX中的对象列表时遇到问题Arrays 遍历React/Jsx中的对象列表,arrays,object,reactjs,traversal,jsx,Arrays,Object,Reactjs,Traversal,Jsx,我在尝试遍历JSX中的对象列表时遇到问题 renderBooks(book) { return( <div> A new book </div> {book.id}, {book.timeIn} ); } render() { console.log("the values are", this.props.bookList); return ( &
renderBooks(book) {
return(
<div> A new book </div>
{book.id}, {book.timeIn}
);
}
render() {
console.log("the values are", this.props.bookList);
return (
<div >
<h1> The Books </h1>
{this.props.bookList.map(this.renderBooks.bind(this))}
</div>
);
}
}
问题是timeIn返回uz.mapthis.props.bookList,timeIn=>{…}实际上是您的book对象
所以,当react说:
错误:找到的对象作为React子对象无效:具有键{address,resolved,timeIn}的对象
这意味着它不知道如何渲染图书对象。您试图使用{timeIn}来呈现它。在本例中,它不是timeIn属性,而是整个book对象
您只需要正确使用book对象。像这样的方法会奏效:
渲染书{
return\uu.mapthis.props.bookList,book=>{
回来
{book.id}-{book.timeIn}
};
}
或者,如果可以使用对象分解,则可以采用更时尚的方式:
渲染书{
返回{id,timeIn}=>{
回来
{id}-{timeIn}
};
}
希望有帮助 这很有道理,谢谢!有一个问题是我可以访问对象名吗-KBMASG9X当然!Lodash允许您这样做。可以在映射中使用第二个参数。例如:{a:1,b:2},value,key=>console.logvalue,key;将有对象值在内的值和对象键(在您的示例中为-KbMAsG9X内键)。
renderBooks() {
return _.map(this.props.bookList, (timeIn) => {
return(
<li className="list-group-item">
{timeIn}
<button
className="btn btn-danger right">
Book Exists
</button>
</li>
);
});
}
render() {
return (
<div >
<h1> The Books </h1>
{this.renderBooks()}
</div>
);
}
}
Error: Objects are not valid as a React child (found: object with keys {address, resolved, timeIn})