我试图防止用户使用后退按钮,我在react-navigation文档中找到了解决方案 正如他们所说,我必须使用以下代码:
navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'Login' },
],
})
);
所以我在useEffect
内部使用了它,以便将其应用于页面加载。
useEffect(()=>{
navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'Login' },
],
})
);
},[])
但是我收到此错误,该应用无法正常运行:
警告:超过最大更新深度。当组件在useEffect中调用setState时会发生这种情况,但useEffect要么没有依赖项数组,要么在每个渲染器上都有一个依赖项更改。
答案 0 :(得分:1)
问题是安装组件时调用带有[]的useEffect。这样就挂载了组件,然后您告诉它将导航重置为登录页面(相同页面),以便重新挂载Login并再次调用useEffect。等等等等。因此,您需要做的是使您发送登录信息的组件需要进行重置,并将其从登录页面内的useEffect中删除。