Я хочу установить параметр в навигаторе нижней вкладки.
В навигаторе вкладок у меня есть 4 вкладки, 2 из которых, автомобили и велосипеды, используют один и тот же экран для отображения FlatList. Данные для FlatList поступают либо из объекта Cars, либо из объекта Bikes.
Я хочу, чтобы на экране использовался объект Cars или Bikes, в зависимости от того, какая из двух вкладок нажата.
Теперь он работает, обнаруживая routeName и, в useEffect, запускает его с помощью оператора if / else. Это прекрасно работает.
Но для будущего использования и возможного использования в других вкладках мне было интересно, как, если возможно, вы можете установить параметр в навигаторе вкладок.
В моем Навигатор. js Файл, который у меня есть внутри навигатора вкладок, эта вкладка:
Cars: {
screen: VehicleList,
navigationOptions: ({navigation}) => ({
tabBarOnPress: ({ navigation, defaultHandler }) => {
navigation.setParams({fromTab: "carsTab"});
defaultHandler()
console.log(navigation);
},
tabBarIcon: tabInfo => {
return (
<Ionicons
name="ios-list"
size={27}
color={tabInfo.tintColor}
/>
);
},
tabBarOptions: {
activeTintColor: "#306fff",
labelStyle: {
fontSize: 12,
},
tabStyle: {
paddingTop: 2,
},
style: {
backgroundColor: "#e4f8ff",
},
}
}),
},
Когда консоль выводит «навигация», я вижу все параметры навигации, включая setParams и getParam состояние плюс:
"state": Object {
"index": 0,
"isTransitioning": false,
"key": "Cars",
"params": undefined,
"routeName": "Cars",
"routes": Array [
Object {
"key": "id-1580242347609-1",
"routeName": "Cars",
},
],
},
Так возможно ли это, или я должен просто продолжить проверять routeName?