当按下android后退按钮时,我正在尝试添加返回webview,但我仍然无法使其工作。
这是我的代码:
<WebView
ref={WEBVIEW_REF}
source={source}
domStorageEnabled={true}
onNavigationStateChange={this.onNavigationStateChange}
/>
componentDidMount() {
BackAndroid.addEventListener('hardwareBackPress', function() {
if(this.state.backButtonEnabled) {
this.refs[WEBVIEW_REF].goBack();
return true;
}
});
};
onNavigationStateChange = (navState) => {
this.setState({
backButtonEnabled: navState.canGoBack,
});
};
使用上面的代码,我得到错误 undefined is not an object this.state.backButtonEnabled (在状态中设置)。
我只是想看看 goBack 是否有效,所以我删除了 if 语句,然后我得到错误 undefined is not an object this.refs [WEBVIEW_REF]。
什么是最好的解决方案?
原文由 NinetyHH 发布,翻译遵循 CC BY-SA 4.0 许可协议
1)绑定你的处理程序 2)不要忘记在卸载时删除监听器。