无法在反应导航中运行NavigationActions.reset()

时间:2017-08-09 03:22:40

标签: react-native react-navigation

我尝试使用以下代码清除导航堆栈

Signup.js

const resetAction = NavigationActions.reset({
      index: 0,
      actions: [
        NavigationActions.navigate({ routeName: 'Portal'})
      ]
    })
    this.props.navigation.dispatch(resetAction)

但运行时出现以下错误。

  

无法重新定义属性:__hooks

routeName在我的初始堆栈导航器中注册,resetAction代码在Portal页面之前的页面中。

因此,屏幕进展是注册 - >门户

有时候我会得到一个

  

尝试更改只读属性的值

错误而不是无法重新定义属性。这个问题让我头疼了几天..非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

尝试这样可以帮助你

 const resetAction = NavigationActions.reset({
  index: 0,
  actions: [
    NavigationActions.navigate({ routeName: 'Portal'})
  ],
 key:null
})
this.props.navigation.dispatch(resetAction)

答案 1 :(得分:0)

我发现了问题。 Ashutosh的解决方案应该有效,但我仍然得到同样的错误。经过进一步的挖掘后,我发现我之前的屏幕中有一个开放的featherjs连接没有关闭。

当我取出连接时,重置动作有效。下一步将添加逻辑以在不使用时关闭连接。

非常感谢:)