在项目中,不知道你们有没有遇到这样的一个问题,好比说有两个页面A,B。A页面中有某个按钮点击后能够跳转到B页面,如今有一个需求就是,我在B页面中作了某些操做,而后点击回退按钮,回到A页面,A页面中的数据也须要刷新过来。嗯,若是是作过android开发的朋友必定会知道,解决这样的需求的方法有不少,好比能够使用activity的生命周期,也能够使用广播等等,可是若是在react native中呢??react
咱们看一下官网能够知道,react native的生命周期不是针对于页面的,而是组件,什么意思呢?也就是说这个生命周期是组件的生命周期,而不是页面的生命周期,页面在跳转的时候,页面就会回调相应的生命周期的方法,可是组件在页面跳转的时候不必定会回调相应的生命周期方法,因此react native中,使用生命周期这个方式来刷新页面,并非最好的选择。那么react native中有没有一个相似与广播这样的东东呢。有的,就是这个东西:DeviceEventEmitter.android
在页面A中进行注册:react-native
1 import { 2 DeviceEventEmitter 3 } from 'react-native'; 4 5 6 //注册这个监听事件 7 componentDidMount(){ 8 DeviceEventEmitter.addListener('xxxName’, Function); 9 }; 10 11 12 //在组件销毁的时候要将其移除 13 componentWillUnmount(){ 14 DeviceEventEmitter.remove(); 15 };
在页面B中就能够进行掉用了:spa
1 import { 2 DeviceEventEmitter 3 } from 'react-native'; 4 5 //调用事件通知 param是指传递的相应参数 6 DeviceEventEmitter.emit('xxxName’,param);
这样,咱们就实现了页面的刷新了。code