Компонент, влияющий на результат if / else в svelte - PullRequest
0 голосов
/ 26 февраля 2020

У меня странная ситуация в svelte 3, когда добавление подкомпонента в разметке влияет на результат блоков if / else. Учитывая эту разметку, почему первый htmlColumns.includes output TRUE !!! , а второй, если с таким же точным условием никогда не выдаст AGAIN !!! ?

{#each columns as column}
    {#if htmlColumns.includes(column)}
        <td>TRUE!!!</td>
    {/if}
    {#if computedColumns[column] }
        <td><span>{row['_' + column]}</span></td>
    {:else if htmlColumns.includes(column)}
        <td>AGAIN!!!</td>
    {:else}
        <td class="data-grid-cell-editor">
            <CellEditor table={table} references={references[column]} displayValue={row['_' + column]} value={row[column]} field={column} record={row} />
        </td>
    {/if}
{/each}

enter image description here

Что может сбить с толку, так это если я удалю свой пользовательский компонент CellEditor из последнего блока else, если / else logi c ведет себя как ожидалось, выдает СНОВА !!!:

{#each columns as column}
    {#if htmlColumns.includes(column)}
        <td>TRUE!!!</td>
    {/if}
    {#if computedColumns[column] }
        <td><span>{row['_' + column]}</span></td>
    {:else if htmlColumns.includes(column)}
        <td>AGAIN!!!</td>
    {:else}
        <td>CRAZY!!!</td>
    {/if}
{/each}

enter image description here

Как компонент CellEditor может повлиять на результат блок if / else logi c? Я сократил компонент CellEditor до одного div без сценария, и он все равно влияет на него.

...