опора теряется, когда матомо выполняется в стройном - PullRequest
0 голосов
/ 28 января 2020

Я столкнулся с действительно странной ошибкой при прохождении реквизита. Это родительский компонент:

<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>

В основном проблема заключается в том, что моя функция закрытия теряется в компоненте загрузки. Поток состоит в том, что сначала рендерит компонент регистра, выполняет некоторую логику c, а после этого компонент загрузки рендерится со значениями, переданными из компонента регистра. После завершения некоторой логики c вызывается 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, глобальной функции для объекта окна). Когда убираю эту функцию, то все работает. Так кто-нибудь знает, что здесь происходит не так?

...