2016-06-03 2 views
1

Так что в основном я получаю ошибку в заголовке, связанном с навигатором. Ошибка появляется, когда я нажимаю на значок.React Native error: undefined не является объектом (оценка '_this2.props.navigator.push')

То, что я в принципе хочу сделать, это сделать бар Tab в верхней части, который переключается между тремя различными видами: кормом, виками, и доской объявлений

Вот мой index.android.js: (импорт Nav)

_renderScene(route, navigator) { 
    var globalNavigatorProps = {navigator}; 

    switch(route.ident) { 
     case "FeedView": 
      return(
       <Feed 
       {...globalNavigatorProps} 
       /> 
      ); 

     case "WikiView": 
      return(
       <View> 
        <Text> 
         {'Hello'}; 
        </Text> 
       </View> 
      ); 

     case "BoardView": 
      return(
       <View> 
        <Text> 
         {'Hello'}; 
        </Text> 
       </View> 
      ); 

     default: 
      console.log(`Something went wrong ${route}`); 
    } 
} 

render(){ 
    return(
     <View> 
      <Nav /> 
      <Navigator 
       initialRoute={{ident:"Feed"}} 
       ref="appNavigator" 
       renderScene={ this._renderScene } 
      /> 

     </View> 
    ); 
} 

Вот мой Nav.js:

constructor(props){ 
    super(props); 
} 

render(){ 

    console.log(this.props.navigator); 
    return(
     <View style={{flexDirection: "column"}}> 
      <View style={styles.nav}> 
       <Icon onPress={(event) => this.props.navigator.push({ident: "Feed"})} name="newspaper-o" size={22}/> 
       <Icon name="wikipedia-w" size={22}/> 
       <Icon name="comments" size={22}/> 
      </View> 
      <View style={styles.divider}/> 
     </View> 
    ); 
} 

_changeView(type){ 

} 

ответ

0

Если вы пытаетесь реализовать вкладки, есть лучшие способы вы всегда можете использовать модуль с открытым исходным кодом, такой как этот https://github.com/skv-headless/react-native-scrollable-tab-view разработчик сделал его таким образом, что он прост в использовании, и пример достаточно хорош, чтобы пройти через большую часть части.

Поэтому вместо того, чтобы создавать такие компоненты, я бы предложил использовать модули, созданные сообществом.

Надеюсь, что мой ответ был полезен.

+0

Я действительно пробовал использовать этот модуль, но я не хотел, чтобы свиток переключал вкладки, и я действительно не знал, как я могу это изменить. – Parkicism

+0

hmmm вы всегда могли бы сделать это в родном андроиде, а затем напишите мост к нему, это достаточно просто, позвольте мне посмотреть, могу ли я найти что-то еще –

2

Я не думаю, что это вопрос, но функция renderScene не будет связан с среагировать компонента.

Попробуйте включить renderScene={ this._renderScene } в renderScene={ this._renderScene.bind(this) }

+0

Он по-прежнему дает мне ту же ошибку :( – Parkicism

+0

Проблема в том, что

0

эта ошибка происходит всегда, когда, которого не связывают (это), проверьте, вы Иконка модуля метод onPress

+0

I получить ту же ошибку .. – Parkicism

Смежные вопросы