【发布时间】: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" }],
})} /> }
【问题讨论】:
-
@WaheedAkhtar 因为我正在使用反应导航版本:5.x,它给出了以下错误:“无法从“screens\ScreenD.jsx”解析“react-navigation””
-
能否请您也添加您的 package.json 文件
-
@WaheedAkhtar package.json 的驱动链接drive.google.com/file/d/15I80o_RhM5t4jmiT49HW1SpUfwtrJmRt/…
-
reactnavigation.org/docs/navigation-actions 这解决了我的问题....谢谢大家。
标签: react-native navigation stack-navigator tabnavigator react-native-tabnavigator