0

我在传递道具时遇到了一个非常奇怪的错误。这是父组件:

<script>
 export let close;
  let showDownload = false;
  let validOS;
  let userID;
  let downloads;

  async function setData(args) {
    // do logic
    downloads = args;
    showDownload = true;
  }
</script>

<Modal {close}>
  {#if showDownload}
    <Download {userID} {downloads} {close} />
  {:else}
    <Register {validOS} {setData} {close} />
  {/if}
</Modal>

基本上问题是我的关闭功能在下载组件中丢失了。流程是首先渲染注册组件,执行一些逻辑,完成后,下载组件使用从注册组件传递的值进行渲染。在完成一些逻辑之后,调用 close 。但它是未定义的。问题似乎是下载组件中的这个 onMount 函数:

<script>
   export let close
</script

  onMount(() => {
    let element = document.createElement("a");
    element.setAttribute("href", "some url", "download");
    element.style.display = "none";
    document.body.appendChild(element);
    element.click();
    document.body.removeChild(element);

    _paq.push(["trackLink", href, "download"]);
  });

我能够将问题缩小到 _paq 函数(它来自 Matomo,窗口对象上的全局函数)。当我删除此功能时,一切正常。那么有人知道这里出了什么问题吗?

4

0 回答 0