ReactNative 返回上层界面刷新数据( A -> B -> A)

343 阅读1分钟

需求:A 界面跳转到B 界面再返回A 界面时需要刷新数据或者做一些其他处理,ReactNative 没有类似iOS的viewWillDisappear生命周期,只能自己处理。

首先引入 ReactNative的import { DeviceEventEmitter } from "react-native";

哪个界面想刷新数据就在哪个界面接收监听事件!A 界面 想刷新数据就在 A 界面 监听

B 界面

// 发送事件
DeviceEventEmitter.emit("REQUES_DATA", "监听");
// DeviceEventEmitter.emit("监听名称", "此处可以是参数也可以是方法");

A 界面

componentDidMount() {
    // 接收事件
    this.listener = DeviceEventEmitter.addListener(
      "REQUES_DATA",
      this._onRefresh
    );
  }

  // 试图将要卸载
  componentWillUnmount() {
    // 做一些回收工作 像 iOS 里的 dealloc
    // 销毁事件
    if (this.listener) {
      this.listener.remove();
    }
  }