钩子setState不会立即更新

时间:2020-09-30 06:59:38

标签: javascript react-native react-hooks

我想更新一个状态,然后再用这种状态做其他事情:

const [isStudent, setIsStudent] = useState<null | boolean>(null);

const onPressItem = (titre: string) => {
   [Do things...]
   setIsStudent(true);
   navigation.navigate('OtherScreen, {isStudent: isStudent});
}

问题出在我的OtherScreen中,变量isStudent例如为null,就像setIsStudent(true)现在不起作用一样。

任何解决方案吗?

1 个答案:

答案 0 :(得分:1)

该钩子是异步的,不一定会立即更新。如果您需要访问更新后的值,则可以将当前值作为更新函数中的第一个参数传递:

(currentState)=> currentState +1

您还可以运行useEffect挂钩,该挂钩将在状态更新后执行更新。此处选择的答案很好地涵盖了这一点:useState set method not reflecting change immediately