Настройка параметров в Tab Navigator с помощью tabBarOnPress - PullRequest
0 голосов
/ 28 января 2020

Я хочу установить параметр в навигаторе нижней вкладки.

В навигаторе вкладок у меня есть 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...