小编Pét*_*inn的帖子

分派触发后使用状态

在使用 dispatch 更新 useReducer 状态后,我需要能够立即执行操作。但是 dispatch 运行异步所以当我运行我的下一段代码时,它在 dispatch 应该更新它之前使用旧状态。

我尝试过的是使用 useEffect(()=>{},[state]),但它只是在每次状态更新时运行。我需要根据条件执行某些操作......不仅仅是每次状态更新时。

// Let's update some stuff on the server with new data!
  const handleFinishOrder = () => {

    dispatch({ type: "finish-order", payload: id }); // Set some fields to null

    socket.emit("request-update-live-data", state); // Old state gets sent to server :(
  };
Run Code Online (Sandbox Code Playgroud)

我希望在我将状态发送到服务器时更新状态,但发送的实际状态是旧状态。

socket.io reactjs react-hooks

5
推荐指数
1
解决办法
1916
查看次数

标签 统计

react-hooks ×1

reactjs ×1

socket.io ×1