gpt4 book ai didi

reactjs - 如何根据同一周期的状态有条件地运行 useEffect

转载 作者:行者123 更新时间:2023-12-02 03:06:38 25 4
gpt4 key购买 nike

我有一系列事件,其中一个事件必须依赖于前一个事件的执行而发生。

const [token, setToken] = useState('')
const getToken = async () => {
try {
const newToken = await AsyncStorage.getItem(LOGIN_TOKEN)
setToken(newToken)
} catch (err) {
throw new Error(err)
}
}

useEffect(() => {
getToken()
if(token) {
console.log("the final event")
}
}, [postAction])

我有 useEffect Hook ,每次 postAction 更改时都会运行。我希望仅当 getToken 运行并检索 token 时才发生“最终事件”。我相信 setToken setter 的异步性质没有及时发生设置 token 以满足 if 语句的条件>。因此,最终事件永远不会在第一次运行时执行。

最佳答案

您可以添加另一个 useEffect Hook ,专门查找 token 的更改。

useEffect(() => {
getToken();
}, [postAction]);

useEffect(() => {
if(token) {
console.log("the final event")
}
}, [token]);

关于reactjs - 如何根据同一周期的状态有条件地运行 useEffect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58886137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com