У меня странная ситуация в 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}
Что может сбить с толку, так это если я удалю свой пользовательский компонент 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}
Как компонент CellEditor может повлиять на результат блок if / else logi c? Я сократил компонент CellEditor до одного div без сценария, и он все равно влияет на него.