ReactNative 物理返回键失效的问题

前言

你们遇到过React native做的app, 物理返回键不好用的情况吗?网上搜了各种资料,始终无法解决。最后搜到了这篇大神的文章,大家可以点击进入看看。
然后我就照着第二种方法做完了,我直接把人家的代码拷贝一下,如下:

方法2: 在你的项目导航栏首页里自定义导航路由:
const MyApp = StackNavigator({
  Home: { screen: HomeScreen },
  Profile: { screen: ProfileScreen },
}, {
  initialRouteName: 'Home',
})

const defaultGetStateForAction = MyApp.router.getStateForAction;
MyApp.router.getStateForAction = (action, state) => {
    if (state&&state.routes.length==1&&action.type=='Navigation/BACK'){
        //在项目首页并且按了物理键返回
        BackHandler.exitApp()

    }
    return defaultGetStateForAction(action, state);
};

作者:凹凸怪cq
链接:https://www.jianshu.com/p/d9ad8572ab6d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

bug再现

但是做完后,bug又产生了。用返回键键退出app后,再次进入app,物理返回键又失效了。这个问题痛苦了我好几天。各种资料搜索,始终没找到解决办法 ,我都怀疑只有我遇到了这个问题,其他人没遇到吗?好了,不发牢骚了,看我的解决办法:

在首页的时候,如果按了返回键,调用android原生的方法:Syste.exit(0)

这个方法,是我尝试了各种方法无果的时候,突然想到的,非常好用,大家可以用用试试。关于如何调用原生方法,大家再查查资料,我就不再这赘述了。

结尾

React Native , 该填的坑我基本上都填过了,发现其实RN蛮好用的。比用android原生开发简单省力。

猜你喜欢

转载自blog.csdn.net/mffandxx/article/details/81064566
今日推荐