Solidjs:在createStore中使用Map時,變更時不會更新。
P粉299174094
P粉299174094 2023-07-20 14:47:02
0
1
512

我對Solidjs還相對新手,也許我忽略了一些東西,但考慮到以下範例,我試著理解這裡的問題:

const [state, setState] = createStore({ items: new Map() }); // e.g. Map<number, string>

在一個元件中,假設我想要使用儲存的衍生狀態,像這樣:

export const Overview = () => {
    const count = () => state.items.size;

    return (<div>{count()</div>);
};

如果我現在在地圖中新增一個條目,我以為計數屬性會自動更新,因為我使用了依賴關係。

我嘗試了將這個範例中的地圖替換為數組,這樣做效果非常好,組件顯示了正確和預期的值。

有人可以指導我在文件中找到正確的部分,或者解釋為什麼數組可以工作而地圖不行嗎?

P粉299174094
P粉299174094

全部回覆(1)
P粉821274260

當訊號的值發生變化時,它會通知其訂閱者,但是您並沒有設定一個新值,而是向其中插入了新的條目,因此這個操作不被視為更新。您應該設定一個新的地圖。您可以透過複製舊地圖將插入的值移至新地圖中。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!