我正在使用具有以下路由结构的应用程序:
root // tab navigator
A // stack navigator
A1
A2 -> B
B // stack navigator
B1
B2
B3 -> C
C
根导航由选项卡导航器组成。该选项卡导航器上的两条路由(A和B)包含堆栈导航器。
我正在努力做到这一点,以便每当用户单击B选项卡时,B堆栈都会重置,因此在B堆栈挂载时始终为用户提供B1服务。
我想可以通过将以下事件添加到用户单击以导航到B的图标上来实现此目的(我的标签组件是自定义的):
this.props.navigation.dispatch(Stackactions.reset({
index: 0,key: null,actions: [Navigationactions.navigate({ routeName: 'B' })],}));
但是,这引发了:
Error: There is no route defined for key B.
Must be one of: 'A','A1','A2'
这使我感到困惑。有谁知道我可以如何强制B堆栈以编程方式重置为0?任何建议都会有所帮助!
// versions:
"react-navigation": "^4.0.10","react-navigation-stack": "^1.9.4","react-navigation-tabs": "^2.5.6",