无redux时如何进行数据共享---new CustomEvent

264 阅读1分钟

一个项目工程由多个gitlab工程组成时,无法使用redux,该如何解决?

1.设置数据

解决方法:使用new CustomEvent将数据放在window对象中。

const result = new CustomEvent("itemDetail", {detail: "测试数据"});
document.dispatchEvent(result);

解释:new CustomEvent两个参数,第一个是定义的数据的名称,即从另一个gitlab中获取数据时需要获取的是itemDetail,第二个参数是一个对象,对象的名称是detail,detail是固定格式,后面内容可以是任何数据形式,包括字符串,对象,数字,等等;

2.获取数据

componentDidMount(){
    let _this = this;
    document.addEventListener("itemDetail", (event) => {
        console.log(event.itemDetail);    //测试数据
        _this.setState({
            data: event.itemDetail
        })
    })
}