index.js:1警告:状态来自useState()和useReducer()的更新 钩子不支持第二个回调参数。执行一面 渲染后的效果,在组件主体中使用 useEffect()。
这是我尝试执行此操作时遇到的错误
setUnansweredQuestions({ newUnansweredQuestions }, () =>
nextQuestion()
);
我尝试在更新状态以解决未解决的问题后运行一个函数,但由于它不会立即更新而无法正常工作。
我搜索了一下,据说使用了useEffect,但是我已经定义了一个,不会让我创建另一个。我只想在更新UnansweredQuestions后调用函数nextQuestion
useEffect(() => {
setUnansweredQuestions(questions);
selectRandomQuestion();
}, [currentQuestion]);
答案 0 :(得分:2)
拥有多个useEffect
没什么问题。
由于您做过setUnansweredQuestions
,并且想在状态变量更改后运行某些内容,因此请执行以下操作:
useEffect(nextQuestion, unansweredQuestions);
答案 1 :(得分:-2)
您可以尝试这样,我知道这不是一个很好的解决方案,但是它有效
setState(UnansweredQuestions);
setTimeOut(() => {
nextQuestion()
}, 16)