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

问题描述

我有一个包含产品/项目的页面。有些有用户需要选择的选项,有些根本没有选项。

在我的购物车页面中,如果需要,我会显示此订购的商品/产品以及用户选择的选项。这就是我迭代产品/项目和选项的方式

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

问题是当没有选项时,我在我的开发工具中收到错误消息“无法读取未定义的属性‘长度’”,当然是因为 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...