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