在自己的函数中响应导航 onPress
2017-06-14
5089
我已按照教程 https://reactnavigation.org/docs/intro/ 中的说明实现了 React Navigation 示例,并且运行良好。
<Button
onPress={() => navigate('Chat')}
title="Chat with Lucy"
/>
我不想直接在 onPress 中调用 navigation,而是想在单独的函数 btnToChat 中调用它。我尝试使用 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)
1个回答
一切正常,您只需绑定
_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>
);
}
或者在
constructor
中定义
_btnToChat
方法的绑定:
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>
);
}
Mayank Shukla
2017-06-14