我在开发中遇到一个问题,这就是你有一个页面A和页面B。有一些数据存储在本地缓存AsyncStorage中。页面B调出AsyncStorage的数据到state中。当我们点击页面A里的按钮来改变AsyncStorage存储的数据时,我希望页面B能够及时更新state。
在页面B中进行注册:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import { DeviceEventEmitter } from 'react-native'; //注册这个监听事件 componentDidMount(){ DeviceEventEmitter.addListener('xxxName’, Function); }; //在组件销毁的时候要将其移除 componentWillUnmount(){ DeviceEventEmitter.remove(); }; |
在页面A进行调用:
1 2 3 4 5 6 |
import { DeviceEventEmitter } from 'react-native'; //调用事件通知 param是指传递的相应参数 DeviceEventEmitter.emit('xxxName’,param); |
这样我们就是实现了数据的刷新。