我已经在教程https://reactnavigation.org/docs/intro/中实现了React Navigation示例,它运行正常。
<Button
onPress={() => navigate('Chat')}
title="Chat with Lucy"
/>
我想在一个单独的函数btnToChat中调用它,而不是直接在onPress中调用导航。我试图用this.props.navigation.navigate调用它,但它不起作用。你有什么建议吗?谢谢!
btnToChat(){
console.log("test");
this.props.navigation.navigate('Chat');
}
render() {
const { navigate } = this.props.navigation;
return (
<View>
<Button
onPress={this._btnToChat}
/>
</View>
);
}
}
出现以下错误:undefined不是对象(评估this.props.navigation)
答案 0 :(得分:3)
一切正常,您只需要绑定_btnToChat
方法即可访问(正确的上下文)this
关键字。
像这样:
btnToChat = () => { //here use arrow function
console.log("test");
this.props.navigation.navigate('Chat');
}
render() {
const { navigate } = this.props.navigation;
return (
<View>
<Button
onPress={this._btnToChat}
/>
</View>
);
}
或者在_btnToChat
内定义constructor
方法的绑定:
constructor(){
super();
this._btnToChat = this._btnToChat.bind(this);
}
btnToChat (){
console.log("test");
this.props.navigation.navigate('Chat');
}
render() {
const { navigate } = this.props.navigation;
return (
<View>
<Button
onPress={this._btnToChat}
/>
</View>
);
}