Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复在redux中两次更新相同信息的问题?_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 如何修复在redux中两次更新相同信息的问题?

Javascript 如何修复在redux中两次更新相同信息的问题?,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正试图对我的减速机、操作代码进行重构。问题是,一个状态依赖于另一个状态,因此一个状态被更新,然后另一个状态必须接收相同的信息,但它会更新它。 这是你的电话号码。 文件夹是src/reducer 我曾试图把各州分开,但这给了我更多的麻烦 我有两种状态:电路板和电流板 董事会中发生了什么: case 'ADD_CARD': const { list } = action.payload return [ ...boards.slice(0, list.boardId),

我正试图对我的减速机、操作代码进行重构。问题是,一个状态依赖于另一个状态,因此一个状态被更新,然后另一个状态必须接收相同的信息,但它会更新它。 这是你的电话号码。 文件夹是src/reducer

我曾试图把各州分开,但这给了我更多的麻烦

我有两种状态:电路板和电流板 董事会中发生了什么:

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;
}