私は3つのタブを持つTabNavigatorを持っています。これらの3つのタブにはそれぞれ、StackNavigatorsがあります。タブが2回クリックされたときにStackNavigatorをナビゲートする方法は?
ユーザーが同じタブボタンを2回クリックすると、StackNavigatorを元に戻す方法はありますか?
私の現在のアプローチだけでやっている....何も..
tabBarComponent: ({jumpToIndex, ...props, navigation}) => (
<TabBarBottom {...props} jumpToIndex={index => {
const { state } = navigation,
{ routes } = state;
console.log(routes);
if (state.index === index) {
console.log(index);
const resetTabAction = NavigationActions.navigate({
routeName: 'Dishes',
action: NavigationActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'Dishes' })],
})
});
// props.navigation.dispatch(resetTabAction);
navigation.dispatch(resetTabAction);
} else {
jumpToIndex(index);
}
}}/>
),
編集: 私は今、インナーStackNavigatorをラップしているコンポーネントにDishesScreen.router = DishesStack.router;
を追加しました。今度はルートと州のサブナビゲーターを見ることができます。しかしScreen1(Dish)はありません。ただ一つのルートがあります:DishList ...より良い私のコンポーネントを理解するための多分
:
のAppコンポーネントは、()レンダリング - >AppNavigator(TabNavigatorコンテナ - お買い得情報、料理、お気に入り)
を料理コンポーネントのrender() - >DishesStack(StackNavigator - DishList、ディッシュ)
は、第2のプレスにjumpToIndex火災のでしょうか? – bennygenel
はい、2番目のプレスのコンソールにインデックスが正しく表示されていますが、NavigationActionsには何の効果もありません。DishesはTabの名前だけです。どこに "通信する"か "委任する"必要がありますStackNavigator?参照や何か他のものはありません... – rakete
DishesはStackNavigatorのTab1またはScreen1ですか? – bennygenel