从这个链接: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 始终未定义。
有任何想法吗?
谢谢