react全局事件传递

实现组件之间的信息传递。下案例实现兄弟组件之间的信息传输。
1、安装事件库

yarn add events

2、创建相关的对象

const eventBus = new EventEmitter();

3、发送信息的组件代码如下:
使用 eventBus.emit(); 第一个参数是发送信息的名字,其后可以传送多个参数。

class Profile extends PureComponent {
  render() {
    return (
      <div>
        Profile
        <button onClick={e => this.emmitEvent()}>点击了profile按钮</button>
      </div>
    )
  }

  emmitEvent() {
    eventBus.emit("message", 123, "Hello Home");
  }
}

4、接收信息的组件
在 componentDidMount()和componentWillUnmount()之中需要进行事件监听,事件监听的取消。
eventBus.addListener()中第一个参数是接受消息的名称,第二个参数是一个函数。在函数接收之中,参数进行的是解析赋值。

class Home extends PureComponent {
  componentDidMount() {
    eventBus.addListener("message", this.handleSayHelloListener);
  }

  componentWillUnmount() {
    eventBus.removeListener("message", this.handleSayHelloListener);
  }

  handleSayHelloListener(num, message1) {
    console.log(num, message1);
  }

  render() {
    return (
      <div>
        Home
      </div>
    )
  }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值