Обработка события щелчка в TabNavigator интерактивной навигации для обновления представления в собственном приложении React.

Я программирую приложение React Native. Я использую реагирующую навигацию для навигации по экранам. У меня 2 StackNavigator, они остались в TabNavigator. А еще у меня есть DrawerNavigator.

const HomeStack = StackNavigator({
  screenA: {screen: screenA},
  screenB: {screen: screenB},
});

const UserStack = StackNavigator({
  screenC: {screen: screenC},
  screenD: {screen: screenD},
});

const TabBar = TabNavigator({
  home1: {
    screen: HomeStack,
  },
  user1: {
    screen: UserStack,
  }
});

const DrawerMenu = DrawerNavigator({
  TabBar: {screen: TabBar},
},{
    drawerWidth: 300,
    drawerPostition: 'left',
    contentComponent: props => <MenuSide {...props}/>,
  }
)
var App = React.createClass({

  render: function() {
     return (
      <View>
        <DrawerMenu name='John'/>
      </View>
    );
  },
});

Вопрос 1: Я хочу, чтобы при нажатии вкладки home1 или user1 экран home1 (screenA) или экран user1 (screenC) обновлялся. Есть ли способ обработать событие, на котором находится вкладка?

Вопрос 2: В DrawerMenu класса App у меня есть свойство «name». Я хочу, чтобы screenA получил реквизит "имя". Как я могу достичь своей цели?

Большое спасибо.


person vannguyen    schedule 02.08.2017    source источник


Ответы (1)


согласно документации, здесь, вы можете использовать navigationOptions: {navigationOptions: () => doWhatever()} для обработки касания панели вкладок.

В твоем случае

const TabBar = TabNavigator({
  home1: {
    screen: HomeStack,
  },
  user1: {
    screen: UserStack,
    navigationOptions: {navigationOptions: () => doWhatever()}
  }
});
person David Schumann    schedule 24.05.2018