Реагировать на собственный параметр навигации, не работающий с Switch навигатором - PullRequest
0 голосов
/ 25 июня 2019

Я использую встроенную навигацию и избыточность в моем коде. Ниже моя структура навигации

const MainTabNavigator = createBottomTabNavigator({
    Home,
    Tenants,
    WorkOrders: {
      screen: WorkOrders,
      navigationOptions: {
        title: 'Work Orders',
        headerTitle: 'Work Orders'
      }
    }
}, {
  navigationOptions: ({ navigation }) => {
      const { routeName } = navigation.state.routes[navigation.state.index];
      return {
        headerTitle: routeName
      };
  }
});

const MainStackNavigator = createStackNavigator({
    MainTabNavigator
}, {
  defaultNavigationOptions: ({ navigation }) => {
      return {
        headerLeft: (
          <Icon
            style={{ paddingLeft: 10 }}
            onPress={() => navigation.openDrawer()}
            name="md-menu"
            size={30}
          />
        )
      };
    }
});

const AppDrawerNavigator = createDrawerNavigator({
  Menu: {
    screen: MainStackNavigator
  }
});

const AppSwitchNavigator = createSwitchNavigator({
  Login: { screen: Login },
  Main: { screen: AppDrawerNavigator }
});

Затем у меня есть файл действий, в котором я перехожу от входа в систему к основным страницам.

async
...
console.debug(response.data);  // Here the console shows value 10
NavigationService.navigate('Main', { userID: response.data });

На странице HomeScreen я пытался увидеть значение параметра:

const { navigation } = this.props;
const userID = navigation.getParam('userID', '0');
console.debug(userID); // HERE THE VALUE IS 0, BUT SHOULD BE 10

Что я делаю не так? Спасибо

...