在设置状态下反应回呼

时间:2020-09-22 00:50:54

标签: javascript reactjs

index.js:1警告:状态来自useState()和useReducer()的更新 钩子不支持第二个回调参数。执行一面 渲染后的效果,在组件主体中使用 useEffect()。

这是我尝试执行此操作时遇到的错误

setUnansweredQuestions({ newUnansweredQuestions }, () =>
                nextQuestion()
            );

我尝试在更新状态以解决未解决的问题后运行一个函数,但由于它不会立即更新而无法正常工作。

我搜索了一下,据说使用了useEffect,但是我已经定义了一个,不会让我创建另一个。我只想在更新UnansweredQuestions后调用函数nextQuestion

useEffect(() => {
        setUnansweredQuestions(questions);
        selectRandomQuestion();
    }, [currentQuestion]);

2 个答案:

答案 0 :(得分:2)

拥有多个useEffect没什么问题。

由于您做过setUnansweredQuestions,并且想在状态变量更改后运行某些内容,因此请执行以下操作:

useEffect(nextQuestion, unansweredQuestions);

答案 1 :(得分:-2)

您可以尝试这样,我知道这不是一个很好的解决方案,但是它有效

  setState(UnansweredQuestions);
  setTimeOut(() => {
    nextQuestion()
  }, 16)