Javascript 如何修复在redux中两次更新相同信息的问题?
我正试图对我的减速机、操作代码进行重构。问题是,一个状态依赖于另一个状态,因此一个状态被更新,然后另一个状态必须接收相同的信息,但它会更新它。 这是你的电话号码。 文件夹是src/reducer 我曾试图把各州分开,但这给了我更多的麻烦 我有两种状态:电路板和电流板 董事会中发生了什么:Javascript 如何修复在redux中两次更新相同信息的问题?,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正试图对我的减速机、操作代码进行重构。问题是,一个状态依赖于另一个状态,因此一个状态被更新,然后另一个状态必须接收相同的信息,但它会更新它。 这是你的电话号码。 文件夹是src/reducer 我曾试图把各州分开,但这给了我更多的麻烦 我有两种状态:电路板和电流板 董事会中发生了什么: case 'ADD_CARD': const { list } = action.payload return [ ...boards.slice(0, list.boardId),
case 'ADD_CARD':
const { list } = action.payload
return [
...boards.slice(0, list.boardId),
updateCards(currentBoard, action.payload),
...boards.slice(list.boardId + 1)
]
currentBoard中发生了什么:
case 'ADD_CARD':
return updateCards(currentBoard, action.payload)
如何重写代码以使其更好?我希望它至少更新一次。板中的“添加卡”操作已经调用了
updateCards(currentBoard,action.payload),
,所以只需从currentBoard
中删除添加卡
另外,您可能需要更改添加卡操作板内的代码(不干净):
除了分开美国,你还尝试过什么?我建议对您的依赖项实现一个已定义的顺序。我已尝试将currentBoard状态作为参数添加到我的updateBoards中。但这并不是最好的解决方案。嘿,当我们发送动作时,它会经过所有的减速器,所以建议只是更改“添加卡片”之类的东西,因为没有两个。减速器应该有相同的动作。这是一个很好的方法,但是如果改变动作的名称,所有的板都不会更新,所以我需要另一个解决方案。我想我刚刚对你的另一个问题发表了意见,为此我会给你同样的建议。研究异步操作。您可能希望第一个ADD_CARD
修改状态,然后分派另一个操作来执行updateCards
在另一个reducer中执行的任何操作。
case 'ADD_CARD':
const { list } = action.payload;
const newBoard = updateCards(currentBoard, action.payload);
list.splice(list.boardId, 0, newBoard);
return list;
}