第一次用 qiankun, 子应用 window 使用问题请教

1次阅读

共计 1237 个字符,预计需要花费 4 分钟才能阅读完成。

使用 qiankun 来进行子应用拆分的时候遇到了以下问题
因为子应用是一个原生的 html 项目,所以有很多挂载在 window 上的属性以及方法
其中有一个鼠标事件处理的问题

  propagateMouseEventToCanvas(event) {if (!event.isSimulated) {console.log(window ,'-------------------------------');
      const eventType = event.type;
      // Create and dispatch a simulated event to the canvas
      const simulatedEvent = new MouseEvent(eventType, {
        clientX: event.clientX,
        clientY: event.clientY,
        screenX: event.screenX,
        screenY: event.screenY,
        button: event.button,
        buttons: event.buttons,
        ctrlKey: event.ctrlKey,
        shiftKey: event.shiftKey,
        altKey: event.altKey,
        metaKey: event.metaKey,
        relatedTarget: event.relatedTarget,
        bubbles: true,
        cancelable: true,
        view: window
      });
      simulatedEvent.isSimulated = true; // Custom property to mark the event as simulated
      this._canvas.dispatchEvent(simulatedEvent);
    }
  }
  
   btnsWrapper.addEventListener('mousemove', this.scene.propagateMouseEventToCanvas.bind(this.scene));
    btnsWrapper.addEventListener('mousedown', this.scene.propagateMouseEventToCanvas.bind(this.scene));
    btnsWrapper.addEventListener('mouseup', this.scene.propagateMouseEventToCanvas.bind(this.scene));

打印的时候发现 window 为一个 proxy Object
并且控制台报错了

helpers.ts:122 Uncaught TypeError: Failed to construct 'MouseEvent': Failed to read the 'view' property from 'UIEventInit': Failed to convert value to 'Window'.

按 gpt 改成 globalThis 也无法解决,不是很理解报错的原因以及解决方案,有没有大佬赐教一下

正文完
 0