----- Обратите внимание на мой выбор в конце -----реагируют родной: не определено не является объектом (оценка «_this.props.navigator.push»)
Я только начал! с реакцией-родной, и у меня проблемы с навигатором.
(я использовал этот пример в качестве шаблона: https://github.com/h87kg/NavigatorDemo)
Первый экран (Main) работает нормально, но при попытке .С к другому он дает мне следующую ошибку:
неопределенную не является объектом (оценка '_this.props.navigator.push')
Главная:
render() {
return (
<Navigator
style={styles.container}
initialRoute={{ name: 'Main' }}
renderScene={ this.renderScene.bind(this) }
/>
);
}
renderScene = (route, navigator) => {
if(route.name == 'Main') {
return (
<TouchableHighlight onPress={() => this._navigate() }>
<Text>GO To View</Text>
</TouchableHighlight>
);
}
if(route.name == 'Home') {
return <Home navigator={navigator} />
}
}
_navigate =() => {
this.props.navigator.push({
name: 'Home',
})
}
Home просто отображает текст в его renderScene:
render() {
return (
<Navigator
renderScene={ this.renderScene.bind(this) }
navigator={this.props.navigator}
/>
);
}
renderScene(route, navigator){
return(
<View style={styles.container}>
<Text>
2nd Screen!
</Text>
</View>
)
}
Edit: Я пытался this._navigate().bind(this)
, но до сих пор не работает
Так, this.props.navigator
никогда не определен, но, как и где я могу определить?
Вы пробовали проверить, существует ли 'navigator' и какие методы у него есть? Попробуйте 'console.log (JSON.stringify (this.props.navigator)' прямо перед вызовом 'push()'. –
nope, журнал говорит, что он не определен, но почему? –