![](/img/trans.png)
[英]React Native, NavigatorIOS, undefined is not an object (evaluating 'this.props.navigator.push')
[英]React Native Navigator Route Object is Undefined
為什么我在React Native Navigator組件中收到undefined
route
的錯誤提示? 我以為我在推送正確的信息,但我猜不是嗎? 任何幫助,將不勝感激。 我習慣於使用網絡,因此React Native確實是一種轉變。
所以...
我想從SplashContainer
組件導航到SignUpForm
組件。 所以我在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)
然后在React Native Navigator中執行此操作...
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}
/>
)
}
}
開始時未定義路線,因為您沒有給Navigator
任何初始路線 。 您想設置props的initialRoute或initialRouteStack 。
假設您想從名稱為HOME的路由開始,下面是一個示例,其中的路由{ name: 'HOME' }
是內聯定義的:
render () {
return (
<Navigator
initialRoute={{ name: 'HOME' }}
configureScene={this.configureScene}
renderScene={this.renderScene}
/>
)
}
通常,導航設置如下:
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} />
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.