1

내 네이티브 네비게이터 구성 요소에 인 route이라는 오류가 발생하는 이유는 무엇입니까? 나는 정확한 정보를 넣으려고하고 있다고 생각했지만 그렇지 않습니까? 어떤 도움을 주시면 감사하겠습니다. 나는 React Native가 상당히 교대 할 수 있도록 웹 작업에 익숙합니다. 그래서네이티브 탐색기 경로 개체가 정의되지 않았습니다.

... 내 SignUpForm 구성 요소에 내 SplashContainer 구성 요소에서 탐색 할

. 그래서 SplashContainer에서 나는 이렇게 ...

class SplashContainer extends Component { 
    handleLoginFinished =() => { 
     this.props.dispatch(handleAuthWithFirebase()) 
    } 
    handleToSignUp =() => { 
     this.props.navigator.push({ 
      signUpForm: true 
     }); 
    } 
    handleToSignIn =() => { 
     this.props.navigator.push({ 
      signIn: true 
     }) 
    } 
    render() { 

     return (
      <Splash onLoginFinished={this.handleLoginFinished} goToSignUp={this.handleToSignUp} goToSignIn={this.handleToSignIn} /> 
     ) 
    } 
} 

export default connect()(SplashContainer) 

을 그럼 난 이렇게하려면 반작용 기본 네비게이터에 ...

export default class NimbusNavigator extends Component { 
    static propTypes = { 
     isAuthed: PropTypes.bool.isRequired 
    } 
    renderScene = (route, navigator) => { 
     // Keeps track of whether user is Authed or not. 
     if (this.props.isAuthed === false) { 
      return <SplashContainer navigator={navigator}/> 
     } else if (route.signUpForm === true) { 
      return <SignUpForm navigator={navigator}/> 
     } 

     return <FooterTabsContainer navigator={navigator} /> 
    } 
    configureScene = (route) => { 

    } 
    render() { 
     return (
      <Navigator 
       configureScene={this.configureScene} 
       renderScene={this.renderScene} 
      /> 
     ) 
    } 
} 

답변

2

Navigator초기 경로을주지 않았기 때문에 처음에는 경로가 정의되지 않았습니다. 소도구 initialRoute 또는 initialRouteStack 중 하나를 설정하려고합니다.

render() { 
    return (
     <Navigator 
      initialRoute={{ name: 'HOME' }} 
      configureScene={this.configureScene} 
      renderScene={this.renderScene} 
     /> 
    ) 
} 
0

은 일반적으로 탐색은 다음과 같이 설정 :

handleToSignUp =() => { 
     this.props.navigator.push({ 
      name: 'signUpForm' 
     }); 
    } 

//

renderScene = (route, navigator) => { 
    // Keeps track of whether user is Authed or not. 
    if (this.props.isAuthed === false) { 
     return <SplashContainer navigator={navigator}/> 
    } else if (route.name === 'signUpForm') { 
     return <SignUpForm navigator={navigator}/> 
    } 

    return <FooterTabsContainer navigator={navigator} /> 
} 
+0

경로가 어느 쪽이든 undefined''이 될 것입니다 : 당신이 이름을 홈으로 경로에서 시작하려는 가정

, 여기에 경로 { name: 'HOME' } 인라인 정의 된 예입니다. – maxwellgover