遇到问题react组件外的js需要更新state

由于用到了layer弹出框插件,保存的时候需要重新刷新列表,列表是react组件。

方法是用 js 的发布订阅,在react 组件中订阅事件

componentDidMount:function(){

                eventProxy.on('changeData', (data) => {

                this.setState({data:data});

                });

  },


发布事件的代码

eventProxy.trigger('changeData', data);


eventProxy.js代码

var eventProxy = {

    onObj: {},

    oneObj: {},

    on: function (key, fn) {

        if (this.onObj[key] === undefined) {

            this.onObj[key] = [];

        }

        this.onObj[key].push(fn);

    },

    one: function (key, fn) {

        if (this.oneObj[key] === undefined) {

            this.oneObj[key] = [];

        }

        this.oneObj[key].push(fn);

    },

    off: function (key) {

        this.onObj[key] = [];

        this.oneObj[key] = [];

    },

    trigger: function () {

        let key, args;

        if (arguments.length == 0) {

            return false;

        }

        key = arguments[0];

        args = [].concat(Array.prototype.slice.call(arguments, 1));

        if (this.onObj[key] !== undefined

          && this.onObj[key].length > 0) {

            for (let i in this.onObj[key]) {

                this.onObj[key][i].apply(null, args);

            }

        }

        if (this.oneObj[key] !== undefined

          && this.oneObj[key].length > 0) {

            for (let i in this.oneObj[key]) {

                this.oneObj[key][i].apply(null, args);

                this.oneObj[key][i] = undefined;

            }

            this.oneObj[key] = [];

        }

    }

};

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,207评论 0 13
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,842评论 2 17
  • 猫是我们人类的好朋友看到流浪猫的那一刻就有救助的必然
    赵云霞阅读 223评论 0 0
  • 就在昨天与今天,我熬夜看了夏有乔木雅望天堂这本书,共有三部,第一部说夏木,第二部是说曲蔚然,第三部是说唐小天。就在...
    雨中降临阅读 552评论 0 0
  • 随风 2017-05-08野渡舟野渡舟浮生梦 和往年一样,今年夏天到来地也是如此地不自觉,刚刚五月初的时候还是大风...
    野渡舟浮生梦阅读 362评论 0 1