【问题标题】:How to have a conditional attribute in Svelte 3?如何在 Svelte 3 中具有条件属性?
【发布时间】:2020-03-20 12:22:18
【问题描述】:

有没有更简单的方法来编写下面的复选框组件:

<script>
  export let disabled = false;
</script>

{#if disabled}
  <label class="checkbox" disabled>
    <input type="checkbox" {disabled} />
    <slot></slot>
  </label>
{:else}
  <label class="checkbox">
    <input type="checkbox" {disabled} />
    <slot></slot>
  </label>
{/if}

拥有&lt;label disabled="false"&gt; 是不可接受的,因为Bulma 有一个CSS 类.checkbox[disabled]

【问题讨论】:

    标签: html svelte svelte-3 svelte-component


    【解决方案1】:

    disabled || null(或disabled || undefined)可以解决问题:

    <label class="checkbox" disabled={disabled || null}>
      <input type="checkbox" {disabled} />
      <slot></slot>
    </label>
    

    来自docs

    ... [A] 属性包括在内,除非它们的值为 nullishnullundefined)。

    <input required={false} placeholder="This input field is not required">
    <div title={null}>This div has no title attribute</div>
    

    【讨论】:

    • Svelte 中的 autofocus 仅在它没有值时才有效——即使是空字符串或 true / false 也不能。如何解决?它来自什么?
    猜你喜欢
    • 2021-06-26
    • 1970-01-01
    • 2020-05-13
    • 2022-01-22
    • 2011-11-12
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    相关资源
    最近更新 更多