[英]React Hooks delayed setState updates causing anomalies in function
我正在使用 React 构建一个测验应用程序,我正在将问题作为数组获取并维护状态:
现在的问题是,当我选择一个选项并单击“保存并 go 到下一个问题”时,会触发以下事件:
现在的问题是,当我们 go 到下一个问题时,即使我们已经回答并返回 state #3 没有正确更新,这些事件按顺序触发是非常重要的。
在我的代码中,因为我使用的是反应挂钩,所以 state 更新是异步的,我没有得到所需的正确序列。 在更新包含所有问题信息的数组之前,将触发下一个问题 function。 我读了很多答案,但他们都建议使用 Effect Hook。 但主要问题是我没有 setStates 的通用用例。 例如,在更新总数组后,我不会 go 到下一个问题,这是一种特殊情况,我需要在 state #1 更新后触发 goToNextQuestion() 。 我应该怎么做才能达到我要求的目标?
您可以有一个 useState 挂钩,它具有包含所有这些状态的 object。 更新时,您可以一次更新它们。
const [myState, mySetState] = useState({questions:[],current:{},selected:0}
然后在更新时,复制旧值,解构它并替换为新信息
mySetState({...myState, current:newValue, selected:newSelected})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.