仅在状态更新时导航

时间:2020-08-26 06:46:51

标签: javascript reactjs react-native

我有一个数组,现在我要在某些条件下使用setState()在其中添加项目,我想移至另一个屏幕,但仅在将项目添加到数组中之后。所有项都已成功添加,但是当一种情况变为真时,它将被重定向到下一个屏幕,然后更新状态。

在数组中添加项目:

   setAnswers(prevState => ([...prevState, { question: question, answers: answer,selectedAnswer:item, action: action }]))

我要重定向的条件:

 if (answerStore[item].endpoint) {
  navigation.navigate("InjurySummary", { answers: answers, endpoint: answerStore[item].endpoint })
                                 }

现在由于数组的最后一项没有被添加,因为它如此快地移动到下一个屏幕。状态更新后,是否有任何方法可以重定向到下一个屏幕。

注意:我正在使用功能组件

1 个答案:

答案 0 :(得分:1)

您可以使用useEffect钩子,每次状态更新时都会遇到该钩子。

  useEffect(() => {
  // write your logic here,if you want to perfom any task when answers updated
  }, [answers])

useEffect钩子有2个参数,第一个是回调函数,第二个是依赖项数组,它将继续监视您的依赖项并在依赖项更新时遇到。