Solidjs: Apabila menggunakan Map dalam createStore, ia tidak dikemas kini pada perubahan.
P粉299174094
P粉299174094 2023-07-20 14:47:02
0
1
573

Saya agak baru menggunakan Solidjs, mungkin saya terlepas pandang, tetapi saya cuba memahami masalah di sini dengan mengambil kira contoh berikut:

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

Dalam komponen, katakan saya mahu menggunakan keadaan terbitan tersimpan, seperti ini:

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

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

Jika saya kini menambah entri baharu pada peta, saya akan menyangka bahawa harta kiraan akan dikemas kini secara automatik kerana kebergantungan yang saya gunakan.

Saya cuba menggantikan peta dalam contoh ini dengan tatasusunan dan ia berfungsi dengan sempurna, komponen tersebut memaparkan nilai yang betul dan dijangka.

Bolehkah seseorang mengarahkan saya ke bahagian yang betul dalam dokumentasi, atau terangkan mengapa tatasusunan berfungsi tetapi peta tidak berfungsi?

P粉299174094
P粉299174094

membalas semua(1)
P粉821274260

Apabila nilai isyarat berubah, ia memberitahu pelanggannya, tetapi bukannya menetapkan nilai baharu, anda memasukkan entri baharu ke dalamnya, jadi operasi ini tidak dianggap sebagai kemas kini. Anda harus menyediakan peta baharu. Anda boleh memindahkan nilai yang dimasukkan ke dalam peta baharu dengan mengklonkan peta lama.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan