weex跨页面通信

需求:

A页面有表单和表格,点击表格中的按钮到B页面,B页面操作完毕,再次回到A页面,表单元素保持不变,表格内容刷新。

通过管道通信去做,用两个管道嵌套,A页面跳转到B页面的时候,直接用管道发过去,B页面收不到信息,需要B页面先告诉A页面可以传值了,A页面再传值。B页面再接收A页面传过来的值,操作页面完成后,再将数据通过另一个管道传回去。

A页面:

const fatherOK = new BroadcastChannel('fatherOK')
const fatherFormData = new BroadcastChannel('fatherFormData')

mounted() {
    this.$next(() => {
      fatherOK.onmessage = (e) => {
        if (e.data.message == 'OK') {
          fatherFormData.postMessage({ fatherData: this.infoForm })
        }
      },
        fatherFormData.onmessage = (e) => {
          if (e.data.fatherData) {
            let fatherInfoForm = e.data.fatherData
            if (fatherInfoForm) {
              Object.assign(this.infoForm, fatherInfoForm)
              this.handleSearch();
            }
          }
        }
    }
}

B页面:

const fatherOK = new BroadcastChannel('fatherOK')
const fatherFormData = new BroadcastChannel('fatherFormData')

mounted() {
    this.$next(() => {
        fatherFormData.onmessage = (e) => {
          this.fatherData = e.data.fatherData;
        },
        fatherOK.postMessage({message:"OK"});
    }
}
给A页面的传值:
fatherFormData.postMessage({fatherData: this.fatherData})

  

posted @ 2022-09-23 15:36  上官兰雨  阅读(31)  评论(0编辑  收藏  举报