BackHandler 在非远程调试条件下不能用
问题描述:
react-native version: 0.54.4
返回键监听BackHandler.addEventListener 在远程调试条件下执行,在非远程调试下,不执行。
原因及hack方法,就在这个页面中。
为何远程调试正常,离线包不正常?
在这个页面有讨论:https://github.com/facebook/react-native/issues/4676
大致意思是,远程调试,js运行在浏览器,相关语法是支持的,离线包是运行在本机的(当前出错在Android,iOS没问题)那一条语句导致了问题?
//问题处在BackHandler.android.js 里
// 主要是Array.from(...) 这个语法的问题
var subscriptions = Array.from(_backPressSubscriptions.values()).reverse();
有什么方法?
官方github的issue:
https://github.com/facebook/react-native/issues/15497
下面三行是我的hack方法var subscriptions = [] _backPressSubscriptions.forEach(item=>subscriptions.push(item)) subscriptions.reverse();
Array.from 在当前rn版本中还不支持?这是bug?还是feature?
不好说,可能是feature,毕竟iOS已经支持了。对Android来说,都是泪。