微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React数据共享插件-PubSub

React数据共享插件-PubSub@H_502_1@

 

下载pubsub-js插件

npm install pubsub-js

 

 

如果要修改一个变量值的话

PubSub.publish('state',{isLoading: true})

 

 

如果有人修改了这个变量,就触发下面的回调函数

PubSub.subscribe('state', (msg, stateObj) => {
    this.setState(stateObj)
})

 

  • msg没用,但是必须是第一个参数,stateobj就是修改成什么对象了 {isLoading: true}

 

注意点:要在组件被消去的时候,取消订阅

  • 因为订阅一个变量的改变和settimeout这种函数一样,都有一个对这个订阅器的唯一标识,在settimeout中就是使用timer来记录,二pubsub有一个token,下面就是把token挂载到this上了,当组件被消去的时候,就对订阅进行取消


    // 该生命函数可以用来初始化一些变量
    componentDidMount() {
        // 如果有人发布了这个消息,那么就触发回调函数
        this.token = PubSub.subscribe('state', (msg, stateObj) => {
            this.setState(stateObj)
        })
    }
​
    componentwillUnmount() {
        // 组件消去的时候,就取消订阅
        PubSub.unsubscribe(this.token)
    }

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐