React-Native:按下Android硬件后退按钮
发布时间:2020-12-15 05:06:33 所属栏目:百科 来源:网络整理
导读:我试图在按下 Android后退按钮时添加回webview,我仍然无法使其工作. 这是我的代码: WebView ref={WEBVIEW_REF} source={source} domStorageEnabled={true} onNavigationStateChange={this.onNavigationStateChange}/componentDidMount() { BackAndroid.addE
我试图在按下
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不是一个对象this.state.backButtonEnabled(在状态中设置). 比我只是想看看goBack是否有效,所以我删除了if语句而不是我得到错误undefined不是一个对象this.refs [WEBVIEW_REF]. 什么是最好的解决方案? class MyComponent extends Component { state = {}; componentDidMount(){ BackHandler.addEventListener('hardwareBackPress',this.backHandler); } componentWillUnmount(){ BackHandler.removeEventListener('hardwareBackPress',this.backHandler); } backHandler = () => { if(this.state.backButtonEnabled) { this.refs[WEBVIEW_REF].goBack(); return true; } } } 1)绑定你的处理程序2)不要忘记卸载时删除Listener. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- vb.net – ADO.Net表值参数(TVP) – 操作数类型冲
- 在Swift中编写 watchOS 2 Hello World 程序
- ruby-on-rails – Rails redirect_to与params
- Quick-Cocos2d-x数据存储之GameState
- objective-c – NSPredicate和Regex
- highchart应用示例2-上:圆角柱状图,下:多指标
- Vue学习笔记进阶篇之函数化组件解析
- 解决ajax修改数据库后_再次刷新还是原来的数据的
- 缓存框架Ehcache学习(一)创建多个CacheManager
- c# – 为什么在.NET Core中看不到WindowsIdentit
热点阅读