Почему при выборе тега привязки блога возникает ошибка JSON, когда выражение включает атрибут окна svelte?
Атрибут не измерим в блоках if или только при измерении с помощью || или операторы &&?
Наблюдения:
- {# if condition1} работает локально.
- {# if condition1 || condition2} работает локально в процессе сборки
- {# if (condition1 || condition2)} работает локально в процессе сборки при выполнении запросов из блока if с использованием тегов привязки. Я получаю ошибку JSON, запрашивающую блог . json, потому что он сталкивается с оператором '>' в условии 2 (измерение связанной внутренней ширины окна).
<script>
import { fly, fade } from 'svelte/transition';
import Burger from './Burger.svelte';
export let segment;
let x,y;
let isOpen = false;
</script>
<style>
/*...*/
</style>
<svelte:window bind:innerWidth={x} bind:innerHeight={y} />
<nav>
<Burger bind:open={isOpen} ref=burger on:toggle={ () => isOpen = x < 768 ? !isOpen : true } />
{#if (isOpen || x > 767)}
<ul out:fade in:fly="{{ y, duration: 1000 }}" class={isOpen ? 'open' : ''}>
<li><a aria-current='{segment === undefined ? "page" : undefined}' href='.' on:click={ () => isOpen = x < 768 ? !isOpen : true }>home</a></li>
<li><a aria-current='{segment === "about" ? "page" : undefined}' href='about' on:click={ () => isOpen = x < 768 ? !isOpen : true }>about</a></li>
<li><a rel=prefetch aria-current='{segment === "blog" ? "page" : undefined}' class:selected={segment === "blog"} href='blog' on:click={ () => isOpen = x < 768 ? !isOpen : true }>blog</a></li>
</ul>
{/if}