0

我在 svelte 3 中有一个奇怪的情况,在标记中添加子组件会影响 if/else 块的结果。鉴于此标记,为什么第一个htmlColumns.includes会输出TRUE!!!但是如果具有相同的确切条件,则第二个 else 永远不会再次输出!!!?

{#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}

在此处输入图像描述

真正令人困惑的地方是,如果我从最后一个 else 块中删除我的自定义CellEditor组件,if/else 逻辑的行为就像预期的那样再次输出!!!:

{#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 逻辑块的结果?我已经将 CellEditor 组件剥离为一个没有脚本的 div,它仍然以同样的方式影响它。

4

0 回答 0