reactJs:两个不同组件之间的通信

时间:2015-08-12 07:47:50

标签: reactjs

我是reactjs的新手。我希望在两个独立组件之间进行通信。

这些组件没有任何父子关系。

我找到了这段代码。

我不知道如何使用它 https://medium.com/react-zine/how-to-communicate-between-components-in-react-cc1ee986523a

1 个答案:

答案 0 :(得分:10)

来自docs

  

用于两个没有组件的组件之间的通信   亲子关系,您可以设置自己的全局事件   系统。订阅componentDidMount()中的事件,取消订阅   componentWillUnmount(),并在收到事件时调用setState()。   Flux模式是安排这种方式的可能方式之一。

我们使用PubSub模式附加全局事件,但正如文档所说,您可以使用许多不同的安排。

使用PubSub

的示例

接收器组件:

componentDidMount: function() {
    this.token = PubSub.subscribe('MY TOPIC', this.subscriber)
},
componentWillUnmount: function() {
    PubSub.unsubscribe(this.token)
},
subscriber: function(msg, data) {
    console.log(msg, data)
    // set state etc...
})

发射器:

PubSub.publish('MY TOPIC', 'hello world!')