Реагировать на навигацию по собственной вкладке из группы кнопок - PullRequest
0 голосов
/ 23 мая 2018

В React Native у меня есть группа кнопок, которой я хочу управлять некоторыми вкладками с помощью навигации по вкладкам.

Все вкладки имеют tabBarVisible: false, и я хочу перейти на правильную вкладку, вызвав navigate('screen1') и т. Д. Но внутри моего updateTab, вызванного из onpress группы кнопок, я не могу получить доступ к navigation.navigate функция.

Что я могу сделать?

import { TabNavigator } from 'react-navigation';

const Tabpage = TabNavigator(
{
   tab1: {
     screen: screen1,
     navigationOptions: {
     tabBarVisible: false,
     tabBarLabel: 'Screen 1'
  }, ...
}

export default class Tab extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      tabIndex: 2
    };
    this.updateTabIndex = this.updateTabIndex.bind(this);
  }

   updateTabIndex = tabIndex => {
     console.log(tabIndex);
     this.setState({ tabIndex });
     switch (tabIndex) {
        case 0:
           console.log('nearby chosen');
           // navigate('screen1'); // error:  no function named navigate
           // navigation.navigate('screen1'); // error: not a function
           // this.navigate or this.navigation.navigate all fail too  
           break;
       case 1: // etc.
       default: // etc. 
     }
  }   

  render() {
    <View style={styles.tabsview}>
      <ButtonGroup
        containerBorderRadius={40}
        selectedBackgroundColor='#FF0000'
        onPress={ this.updateTabIndex }
        selectedIndex={this.state.tabIndex}
        buttons={['screen0', 'screen1', 'screen2']}
        containerStyle={{ height: 30 }}
      />
    </View>

Как получить доступ к навигации из индекса измененного состояния вкладки?

1 Ответ

0 голосов
/ 25 мая 2018

Использование this.props.navigation.navigate('screen1');

...