2017-01-18 6 views
0

Я очень хорошо знал, что React Native (и Stackoverflow), и я работал над переключением экранов с помощью Navigator, и у меня все еще есть не смог сделать это после исследования на помощь в течение двух дней, поэтому я, наконец, прибегал к публикации вопроса. Мой код дает мне: «Неопределенное не является объектом (оценка this.props.navigator)» ошибка и это код, который у меня есть:React-Native Navigator «Undefined не является объектом (оценка this.props.navigator)» error

Навигатор класс:

import HomeScreen from './HomeScreen'; 

import LoginScreen from './LoginScreen' 

export default class Navigation extends Component { 
    render() { 

    return (

     <Navigator 

     initialRoute={{id:"Login"}} 

     renderScene={(route, navigator) => 
     {return this.renderScene(route, navigator)}} 
     /> 
    ); 
} 

renderScene(route, navigator) { 

    switch(route.id) { 

     case "Login": 

      return (<LoginScreen {...route.passProps} navigator={navigator}/>); 

     case "Home": 

      return (<HomeScreen {...route.passProps} navigator={navigator}/>); 

    } 
} 
} 

и компонент LoginButton в LoginScreen.js файл

class LoginButton extends Component { 

    render() { 
     const routes = [{id:'LoginScreen'},{id:'HomeScreen'}]; 
     return (

      <View style={{height:50}}> 
      <Container> 
       <Content> 
        <Button style={{backgroundColor: '#eeb211'}} onPress={this.nextScreen.bind(this)} rounded >    Login Next Screen   </Button> 
       </Content> 
      </Container> 
      </View> 
     ); 
    } 
    nextScreen() { 
    this.props.navigator.push({id:"Home"}) 

    } 
} 

ответ

0

Try Ниже:

<Navigator 
     style={{ flex:1 }} 
     ref={(nav) => { navigator = nav; }} 
     initialRoute={{id:"Login"}} 
     renderScene={(route, navigator) => 
     {return this.renderScene(route, navigator)}} 
     /> 
Смежные вопросы