【发布时间】:2020-09-12 22:46:52
【问题描述】:
所以我正在更新 useEffect 挂钩中的状态并收到此错误,如果我们在 useEffect 挂钩中使用 async/await 语法,我不知道如何使用清理功能
错误:警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请取消 %s 中的所有订阅和异步任务。%s,一个 useEffect 清理函数,
const getToken = async () => {
const mytoken = await AsyncStorage.getItem("fb_token");
if (mytoken) {
navigation.navigate("Main", { screen: "Map" });
setToken(mytoken);
} else {
setToken(false);
}
};
getToken();
}, [navigation]);```
How to update state and use clean up function should i declare this function outside hook but if i do that how would i use that function as a clean up?
【问题讨论】:
-
您在导航到另一个页面后正在执行
setToken。这可能是问题 -
如果我在导航功能之前调用 setToken 之后我需要调用清理功能吗?
-
看看这是否有帮助:stackoverflow.com/a/49906662/8826104
-
@Edward ya 它特别有帮助,尤其是 useRef 方法
标签: javascript reactjs react-native