实现组件之间的信息传递。下案例实现兄弟组件之间的信息传输。
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>
)
}
}