我尝试使用以下代码清除导航堆栈
Signup.js
const resetAction = NavigationActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'Portal'})
]
})
this.props.navigation.dispatch(resetAction)
但运行时出现以下错误。
无法重新定义属性:__hooks
routeName在我的初始堆栈导航器中注册,resetAction代码在Portal页面之前的页面中。
因此,屏幕进展是注册 - >门户
有时候我会得到一个
尝试更改只读属性的值
错误而不是无法重新定义属性。这个问题让我头疼了几天..非常感谢任何帮助。
答案 0 :(得分:0)
尝试这样可以帮助你
const resetAction = NavigationActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'Portal'})
],
key:null
})
this.props.navigation.dispatch(resetAction)
答案 1 :(得分:0)
我发现了问题。 Ashutosh的解决方案应该有效,但我仍然得到同样的错误。经过进一步的挖掘后,我发现我之前的屏幕中有一个开放的featherjs连接没有关闭。
当我取出连接时,重置动作有效。下一步将添加逻辑以在不使用时关闭连接。
非常感谢:)