Как скрыть реагировать на родную вкладку навигации? - PullRequest
0 голосов
/ 28 июня 2018

Я хочу условно скрыть элемент или элементы из вкладки навигации. С перенаправленной страницы я отправляю логический параметр (..navigate ('SomePage', {some_value: true});) и в соответствии с этим значением изменяется видимость элемента вкладки. Но из того, что я исследовал, не похоже, что динамически создаваемая навигация по вкладкам вообще не способна.

Вопрос

Как я могу присвоить элемент TabNavigator?

Вот соответствующий код:

        import X from './X'
        import Y from './Y'
        export const TabNavigatorTest = TabNavigator({
          X: {
            screen: X, navigationOptions: (props) => ({
              title: "X"
            })
          },
          Y: {
            screen: Y, navigationOptions: (props) => ({
              title: "Y",
            })
          }
        },
          {
            navigationOptions: ({ navigation }) => ({
              tabBarIcon: ({ focused, tintColor }) => {
                const { routeName } = navigation.state;
                let iconName;
                if (routeName === 'X') {
                  iconName = `ios-information-circle${focused ? '' : '-outline'}`;
                } else if (routeName === 'Y') {
                  iconName = `ios-flask${focused ? '' : '-outline'}`;
                }
                return <Ionicons name={iconName} size={25} color={tintColor} />;
              }
            }),
            tabBarOptions: {
              activeTintColor: 'tomato',
              inactiveTintColor: 'gray',
            },
            tabBarComponent: TabBarBottom,
            tabBarPosition: 'bottom',
            removeClippedSubviews: true,
            animationEnabled: true,
            swipeEnabled: true,
          });
    ....
    export default class Urun extends React.Component {
    ...
      static router = TabNavigatorTest.router;
    ...
      render() {
    ...
          return (
            <TabNavigatorTest
              navigation={this.props.navigation} />
          );
      }
    }
...