Chi*_*ans 3 javascript arrays reactjs
我有这门课:
class Board {
this.state = {
lists : [{
id: 0,
title: 'To Do',
cards : [{id : 0}]
}]
}
Run Code Online (Sandbox Code Playgroud)
并且想在“lists”状态数组内的“cards”数组上使用setState。以前,我在子组件中有卡数组,但现在我已将其移至 Board 类。这是我之前的功能。
deleteCards(id){
this.setState({
cards: this.state.cards.filter(card => card.id !== id)
});
}
Run Code Online (Sandbox Code Playgroud)
我如何更改它以便它现在可以工作,因为卡片在另一个阵列中?
我无法通过查看这些帖子来解决它:
要在内部完成所有操作setState(请注意, 的第一个参数setState是更新程序函数,其第一个参数是对前一个状态的引用):
如果您可以提供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)
}
})
}))
}
Run Code Online (Sandbox Code Playgroud)
如果您无法提供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
})
}))
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5029 次 |
| 最近记录: |