我在 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,它仍然以同样的方式影响它。