由于刚接触RN,目前在做的RN项目里我没有尝试着用诸如redux、flux来动态管理。可能是我觉得项目不是很复杂没必要去用它们(最主要是我懒得去看它们把它们应用到项目里,等到实在需要用的时候...)
今天遇到一个问题就是点击back按钮返回到上一页的时候要刷新某条数据,因为在此页修改了某个变量要在上一页展现出来。搜索了一下发现打多少人建议用redux,但我还是执着,辗转找到可以通过发送通知,故记录一下。
首先需要在页面注入DeviceEventEmitter,话不多说上代码,
// 这是 firstPage 接受通知刷新数据的页面
componentDidMount() {
DeviceEventEmitter.addListener('ChangeData', (data) => { // 建立一个通知
this.setState({
name: data.name
});
});
}
// 这是 secondPage 页面将要离开的是时候发送通知
componentWillUnmount() {
DeviceEventEmitter.emit('ChangeData', {
email: this.state.email
});
}
我觉得发通知就是用来传递参数吧,当然也可以触发一些方法。