如何解决无法在react-native上读取未定义的属性'push'?

时间:2017-10-28 02:06:41

标签: javascript reactjs react-native

我正在使用RN 0.46.0并在设置登录组件之后我正在尝试使用导航器来推送另一个组件。但是显示了这个

  

无法读取未定义的属性'push'

当我点击按钮

即使是文档也只是采用这种方式来获取另一个组件。

有人知道这是否与版本有关?

或者导航是否需要创建路线?

import React, {Component} from 'react';
import { Text,  View, Navigator, TouchableHighlight } from 'react-native';
import { Card, CardSection, Input, Button } from './common';
import Signup from './Signup';

class Login extends Component {



     goToSignup(){
    this.props.navigator.push({
      component: Signup
    });
  }




    render() {


        return(

            <Card>            

            <CardSection>

            </CardSection>

            <CardSection>
            <Input

            placeholder="Email"
            />

            </CardSection>

            <CardSection>
            <Input
            secureTextEntry

            placeholder="Password"
            />


            </CardSection>

            <CardSection>

            <Button>
            Log In
            </Button>        
            </CardSection>   
            <CardSection>

   <TouchableHighlight onPress={this.goToSignup.bind(this)}>

<Text >
    Go to Sign up
      </Text>       


    </TouchableHighlight>


</CardSection>


</Card>





);

}


}



export default Login;

2 个答案:

答案 0 :(得分:2)

React-Native v0.46没有Navigator组件。它已从v0.44删除。您必须使用其他导航解决方案。

React-Navigation(推荐,由反应社区创建)

其他第三方解决方案:

React Native Navigation

Native Navigation

答案 1 :(得分:0)

这里this.props.navigator是未定义的,请确保this.props.navigator可用于避免此错误,您可以进行一次检查

goToSignup(){
 if(typeof this.props.navigator !== "undefined"){
   this.props.navigator.push({
             component: Signup
   });
  }
 }