Мне нужно иметь возможность предварительно выполнить действие сразу после того, как я обновлю свое состояние useReducer с отправкой. Но диспетчеризация выполняется асинхронно, поэтому, когда я запускаю свой следующий фрагмент кода, он использует старое состояние, прежде чем диспетчер должен был обновить его.
Я пытался использовать useEffect (() => {}, [состояние]), но это просто работает каждый раз, когда состояние обновлений. Мне нужно выполнить определенные действия в зависимости от условий ... не только каждый раз, когда обновляется состояние.
// 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 :(
};
Я ожидаю, что состояние будет обновлено, когда я отправлю его на сервер, но фактическое состояние, которое получитотправлено это старое состояние.