我想更新一个状态,然后再用这种状态做其他事情:
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)
现在不起作用一样。
任何解决方案吗?
答案 0 :(得分:1)
该钩子是异步的,不一定会立即更新。如果您需要访问更新后的值,则可以将当前值作为更新函数中的第一个参数传递:
(currentState)=> currentState +1
您还可以运行useEffect挂钩,该挂钩将在状态更新后执行更新。此处选择的答案很好地涵盖了这一点:useState set method not reflecting change immediately