为什么我得到'无法读取属性'推送'未定义'(React Native)?

时间:2016-07-14 16:35:59

标签: javascript ios react-native react-jsx

在我的index.ios.js中,我有以下内容:

  renderScene(route, navigator){
    return <route.component navigator={navigator} {...route.passProps}/>
  }

render() {
    return (
      <Navigator
        initialRoute={{name: 'FirstPage', component: FirstPage}}
        renderScene={this.renderScene}
      />
    );
  }

然后在我的FirstPage.js中,导航到SecondPage.js:

  _navigate(){
    this.props.navigator.replace({
      component: SecondPage,
      name: 'SecondPage'
    })
  }

然后在我的SecondPage.js中,它只是渲染一个组件。在我的ThirdPage.js中:

  _rowPressed(){
    this.props.navigator.push({
      component: FourthPage,
      name: 'FourthPage',
    })
  }


  <TouchableHighlight
    onPress={() => this._rowPressed()}
  >
     <View>
          <Text>Go to FourthPage</Text>
     </View>
  </TouchableHighlight>

然后在我的FourthPage.js中,我只是:

  <View style={styles.container}>
    This is FourthPage.js
  </View>

我从ThirdPage.js收到错误,其中说:

Cannot read property 'push' of undefined in _rowPressed()

我似乎无法弄明白为什么,因为this.props.navigator.push对.replace和.push都运行良好,但现在我收到了这个错误。任何指导或见解将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:3)

<TouchableHighlight
    onPress={this._rowPressed.bind(this)}//add this
  >
     <View>
          <Text>Go to FourthPage</Text>
     </View>
  </TouchableHighlight>

您可能只需要绑定组件