簡體   English   中英

為什么 svelecte 在我創建新項目時創建 [object Object]?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM