【发布时间】:2020-08-26 04:02:48
【问题描述】:
我有 2 个组件,OneBook 组件有一个“添加到收藏”的选项,我有一个 onClick 事件将“收藏”的状态设置为 true(当然默认值为 false)。在我的第二个组件“Collection”中,我有一个 map 函数,如果它的收集状态为真,则返回书籍元素列表(带有标题、作者等)。然而,当我单击“添加到集合”将状态成功设置为 true 时(因为我在控制台记录了它并且状态正在更新),地图功能没有显示元素,即使它们具有收集集的状态是真的。
为了清楚起见,这是我的代码。 也可以看代码沙箱直接编辑代码:https://codesandbox.io/s/stupefied-lewin-06f6m?file=/src/OneBook.js
OneBook.js
const [collect, setCollect] = useState(true)
return (
<small onClick={() => {setCollect(true);console.log(collect)}} className="addcollect"><i className="fas fa-bookmark bookmark"></i>Add To Collection</small>
)
Collection.js
{
books.map(book => {
return (book.collect? <li><img src={book.img} alt="img"/>{book.title} <span>{book.author}</span></li> : "")
})
}
【问题讨论】:
-
您在 OneBook 中设置的收藏只是该状态的属性,它不是图书对象本身的属性
-
我如何使它成为该书对象的属性?
标签: javascript reactjs use-state react-context