Мы переносим приложение в React Navigation 4 на React Navigation 5. В проекте есть BottomTabNavigator, который имеет для одного из своих маршрутов вложенный TopTabNavigator с тремя вкладками. Одна из вкладок в BottomTabNavigator при нажатии переходит к экрану сортировки, где вы выбираете параметр сортировки для сортировки, а затем переходит к «ожидающему» маршруту, добавляя выбранный параметр сортировки, который должен достигнуть одного из трех экранов списка внутри TopTabNavigator. , В настоящее время я получаю на этих экранах значение route.params, равное нулю, которое, как я полагаю, вызывает другой навигатор в середине (topTabNavigator).
BottomTabNavigator
<BottomTabsNavigator.Navigator
tabBar={props => <CustomTabBar {...props} />}
initialRouteName="Pending"
>
<BottomTabsNavigator.Screen name="Pending" component={createTopTabsNavigator} />
<BottomTabsNavigator.Screen name="Sort" component={SortScreen} />
<BottomTabsNavigator.Screen name="Tab 3" component={Fragment} />
<BottomTabsNavigator.Screen name="Tab 4" component={Fragment} />
<BottomTabsNavigator.Screen name="Tab 5" component={Fragment} />
<BottomTabsNavigator.Screen name="Filter" component={Fragment} />
</BottomTabsNavigator.Navigator>
Вкладка SortScreen:
handleOnPress(item: { text: string; value: string; }): void {
const {navigation} = this.props;
const param = {orderBy: item.value};
navigation.navigate('Pending', param);
}
render(){
return(
<View>
<FlatList
data={orderOptions}
renderItem={({ item }) => (
<ListItem style={{ borderBottomWidth: 0 }} onPress={() => this.handleOnPress(item)}>
<Body>
<Text>{item.text}</Text>
</Body>
</ListItem>
)}
keyExtractor={item => item.text}
/>
</View>
);
}
createTopTabsNavigator:
<TopTabsNavigator.Navigator>
<TopTabsNavigator.Screen name="List1" component={Screen1} />
<TopTabsNavigator.Screen name="List2" component={Screen2} />
<TopTabsNavigator.Screen name="List3" component={Screen3} />
</TopTabsNavigator.Navigator>
Рука с этой проблемой очень ценится