Svelte {# if } 块长度是不可能的。如何获取if块的长度

Svelte {# if } block length is not possible. How to get the length of the if block

我有一个页面 products/items。有些有用户需要选择的选项,有些根本没有选项。

在我的购物车页面中,我显示了这个已订购的 items/products 以及用户在需要时选择的选项。这就是我迭代 products/item 和选项

的方式
{#each eachitem as item }
<li>
  Here it is : {item.item.id} -- {item.price} -- {item.qty}  
  {#if item.item.checkedoptions.checkoptions === 0  }
   <p> Display NO OPTIONS</p>
  {:else}
  
  {#each item.item.checkedoptions.checkoptions[1] as opti}
  <li style="list-style-type : none">
    Options : {opti.optionname} - {opti.optionvalue}
  </li>
  {/each}
  {/if}
</li>

{/each}

问题是当没有选项时,我在我的开发工具中收到错误消息“无法读取未定义的 属性 'length'”,当然是因为 item.item.checkedoptions.checkoptions[ 1] 是空的。我尝试使用 length 但无法弄清楚如何将它附加到 item.item.checkedoptions.checkoptions 我是把它放在 () 还是 [] 里面还是什么? 你怎么写 if 语句 if item.... length === 0 {do something}?

如果我无法获取长度,我该如何解决这个问题,我是否在迭代之前在脚本中做一些事情?

你是怎么解决这个问题的?

在您的 if 语句中,您实际上并没有检查 checkoptions 的长度,而是直接将其与 0

进行比较

您应该将其更改为 #if item.item.checkedoptons.checkoptions.length === 0