Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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,我正在尝试使用React+Redux创建一个国际象棋游戏。我有一个名为allValidMoves的函数,当拖动一个工件时会调用它。它更新存储所有可能有效移动的redux状态。同时,我有64个方形组件,它们试图在工件开始拖动时访问此地图。问题是 一些方块得到了先前的重排状态;我使用react dnd进行拖放 const pieces = () => { if(isDragging){ calculateValidMoves(); } } function calculat

我正在尝试使用React+Redux创建一个国际象棋游戏。我有一个名为allValidMoves的函数,当拖动一个工件时会调用它。它更新存储所有可能有效移动的redux状态。同时,我有64个方形组件,它们试图在工件开始拖动时访问此地图。问题是 一些方块得到了先前的重排状态;我使用react dnd进行拖放

const pieces = () => {

  if(isDragging){
   calculateValidMoves();
  }

}

function calculateValidMoves() {
   arr = {};
   ....

   store.dispatch(update_validMoves('UPDATE',arr))


}

const Squares = (props) => {

   arr = store.validMoves.getState()

   if(arr.get(props.index)){
      doSomething
   }



}


我在你的密码上看到了,我想你想开始行动了吗? 更好地使用get State内部操作。 而redux thunk是异步的。因此,您可以通过操作redux上的wait/callback来避免这种竞争条件