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?
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.