[英]Why is svelecte creating [object Object] when I create a new item?
在我的 SvelteKit 項目中,我使用svelecte package 添加 selectize-style select 輸入。 請求頁面時,初始值通過 svelte 的load
function 創建的data
變量傳入。
<Svelecte id="category"
options={categories}
creatable = true
on:createoption={newCategory}
bind:value={selected}
on:change="{do_something}">
</Svelecte>
在相應的+page.svelte
文件中的<script>
標記中,我有:
let categories = data.categories;
let selected;
function newCategory(c) {
categories.push(c.detail.value);
}
這工作正常,除非我嘗試創建一個新項目。 我創建的新項目出現在輸入中,但是當我嘗試更改我的選擇而不是我創建的項目時,新選項顯示為 [object Object]
我在這里做錯了什么?
仔細考慮之后,我突然想到,當我添加一個新項目時,svelecte 正在創建一個 object。 重新閱讀文檔,我發現這些值應該采用{value: value, label: label}
的形式。 通過我,僅提供一組值就可以最初創建輸入。 所以以下更改為我修復了它:
- let categories = data.categories;
+ let categories = data.categories.map(function(c) { return({value: c, label:c}) });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.