【问题标题】:How to reset navigation stack state in nested navigator in react native如何在本机反应中重置嵌套导航器中的导航堆栈状态
【发布时间】:2021-01-31 13:52:03
【问题描述】:

我的代码类似于以下。假设目前我的导航堆栈历史是:

屏幕 A> 屏幕 B> 屏幕 D。

从屏幕 D 按下按钮我想重置我的导航堆栈状态/历史,如下所示:屏幕 A> 屏幕 F

但我收到此错误:

  The action 'RESET' with payload {"index":1,"routes":[{"name":"Screen A"},{"name":"Screen F"}]} was not handled by any navigator.
<Stack.Navigator>
  <Stack.Screen name="TabNavigator" component={TabNavigator} />
  <Stack.Screen name="Screen E" component={ScreenE} />
  <Stack.Screen name="Screen F" component={ScreenF} />
  <Stack.Screen name="Screen G" component={ScreenG} />
</Stack.Navigator>
<Tab.Navigator>
  <Tab.Screen name="Screen A" component={ScreenA} />
  <Tab.Screen name="Screen B" component={ScreenB} />
  <Tab.Screen name="Screen C" component={ScreenC} />
  <Tab.Screen name="Screen D" component={ScreenC} />
</Tab.Navigator>

const ScreenD=({navigation})=>{ <Button title="reset stack" onPress={()=> navigation.reset({
        index: 1,
         routes: [{ name: "Screen A" }, { name: "Screen F" }],
       })} /> }

【问题讨论】:

标签: react-native navigation stack-navigator tabnavigator react-native-tabnavigator


【解决方案1】:

从这里使用 CommonActions.reset() https://reactnavigation.org/docs/navigation-actions

效果很好。

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2020-01-28
    相关资源
    最近更新 更多