我有这门课:
class Board {
this.state = {
lists : [{
id: 0,
title: 'To Do',
cards : [{id : 0}]
}]
}
并希望在“lists”状态数组内的“cards”数组上使用 setState。以前,我将卡片数组放在子组件中,但现在我已将其移至 Board 类。这是我之前的功能。
deleteCards(id){
this.setState({
cards: this.state.cards.filter(card => card.id !== id)
});
}
我怎样才能改变它,以便它现在可以在卡片位于另一个数组内的情况下工作?
我无法解决这个问题,查看这些帖子:
ReactJS - 数组中对象键的 setState https://stackoverflow.com/questions/35174489/reactjs-setstate-of-object-key-in-array
如何编辑状态数组中的项目? https://stackoverflow.com/questions/42037369/how-to-edit-an-item-in-a-state-array
为了在之内完成这一切setState
(请注意,第一个参数setState
是一个更新函数,其中its第一个参数是对先前状态的引用):
如果您能提供listId
来自呼叫者:
deleteCards(listId, cardId) {
this.setState(prevState => ({
lists: prevState.lists.map((list) => {
if (list.id !== listId) {
return list
}
return {
...list,
cards: list.cards.filter(card => card.id !== cardId)
}
})
}))
}
如果可以的话not提供listId
来自呼叫者:
deleteCards(id) {
this.setState(prevState => ({
lists: prevState.lists.map((list) => {
if (list.cards.some(card => card.id === id)) {
return {
...list,
cards: list.cards.filter(card => card.id !== id)
}
}
return list
})
}))
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)