Я работаю над приложением со следующей структурой маршрутизации:
root // tab navigator
A // stack navigator
A1
A2 -> B
B // stack navigator
B1
B2
B3 -> C
C
Корневая навигация состоит из навигатора вкладок. Два маршрута на этой вкладке навигатора (A и B) содержат навигаторы стека.
Я пытаюсь сделать так, чтобы всякий раз, когда пользователи нажимают вкладку B, стек B сбрасывается, поэтому пользователю всегда предоставляется B1, когда стек B монтируется.
Я думал, что смогу добиться этого, добавив следующее событие к значку, который пользователи щелкают, чтобы перейти к 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",