Rumah  >  Soal Jawab  >  teks badan

Solidjs: Apabila menggunakan Map dalam createStore, ia tidak dikemas kini pada perubahan.

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粉299174094P粉299174094458 hari yang lalu515

membalas semua(1)saya akan balas

  • P粉821274260

    P粉8212742602023-07-21 10:52:47

    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.

    balas
    0
  • Batalbalas