1

从这个链接:https : //carbon-svelte.vercel.app/components/ComboBox 有一段代码应该允许我在 ComboBox 组件中启用拟合。

<script>
  import { ComboBox } from "carbon-components-svelte";

  function shouldFilterItem(item, value) {
    if (!value) return true;
    return item.text.toLowerCase().includes(value.toLowerCase());
  }
</script>

<ComboBox
  titleText="Contact"
  placeholder="Select contact method"
  items={[{ id: '0', text: 'Slack' }, { id: '1', text: 'Email' }, { id: '2', text: 'Fax' }]}
  {shouldFilterItem}
/>

在我的项目中,我复制了该功能,并添加了如下组件:

<ComboBox
    titleText="Currency"
    items={currencyListCarbon}
    bind:value={unitCurrency}
    shouldFilterItem}
/>

currencyListCarbon 是货币列表。这些都出现在组合框中,但由于我有超过 100 个,当我可以简单地输入 USD 时我不想滚动,它会为我过滤,让我选择合适的值。我收到此错误:

Uncaught (in promise) ReferenceError: description is not defined

这是由于项目未定义,但当组合框包含所有项目时,我无法弄清楚为什么它未定义。这些是在从数据库加载页面期间加载的。

我试图更改函数以检查未定义。添加了 console.log 以查看 item 和 value 的值,并且几乎所有 item 始终未定义。

有任何想法吗?

谢谢

4

0 回答 0