在使用 this.props.navigation.navigate('home') 执行页面跳转动作时,红屏报错:
undefined is not an object (evaluating _this2.props.navigation.navigate)
这个错误的原因是:在子组件中执行跳转动作,但跳转动作调用方法navigate并没有传递给子组件。
解决办法:父组件将navigate方法传递给子组件,子组件拿到后执行跳转动作。
例如:
export default class MainPage extends Component {
render() {
return (
<View>
<TopView navigate={this.props.navigation.navigate}/>
</View>
);
}
}
class TopView extends Component{
render(){
return (
<View>
<Button onPress={()=>{this.props.navigate('...');}} />
</View>
);
}
}