当我的应用程序投入生产时,如果发生任何不良事件,我想避免出现红色错误屏幕。
我怎样才能这样做而不是抛出异常并显示错误屏幕,应用程序只需重新启动并返回主页?
答案 0 :(得分:1)
虽然Richard Kho的回答可能有助于解决已知问题,但它无法提供"无声失败"。
有一些工具可以帮助您捕获所有错误,例如react-native-report-error。但是,它也无法无声地失败。
同时,通过几个步骤可以帮助您实现这一目标:
这不是魔术,但有效。
答案 1 :(得分:0)
您需要拥有特定事件的侦听器,并在任何侦听器触发时触发回调。
例如,我有一个使用stats.gamma.fit(reqs)
缺少互联网连接的监听器,以及使用NetInfo
打开/关闭的应用程序。我的AppStateIOS
函数设置了两个属性:
getInitialState
然后我有一些听众和处理程序:
getInitialState: function() {
return {
currentState: AppStateIOS.currentState,
isConnected: null
}
},
我的 componentWillMount: function() {
NetInfo.isConnected.fetch().done(
(isConnected) => { this.setState({isConnected}); }
);
},
componentDidMount: function () {
AppStateIOS.addEventListener('change', this.handleAppStateChange);
NetInfo.isConnected.addEventListener('change', this.handleConnectivityChange);
},
componentWillUnmount: function() {
AppStateIOS.removeEventListener('change', this.handleAppStateChange);
NetInfo.isConnected.removeEventListener('change', this.handleConnectivityChange);
},
handleAppStateChange: function(state) {
this.setState({
currentState: state
});
},
handleConnectivityChange: function(connection) {
this.setState({
isConnected: connection
})
},
方法取决于我的状态:
render