Solidjs : lors de l'utilisation de Map dans createStore, elle n'est pas mise à jour en cas de modification.
P粉299174094
P粉299174094 2023-07-20 14:47:02
0
1
570

Je suis relativement nouveau sur Solidjs, j'oublie peut-être quelque chose, mais j'essaie de comprendre le problème ici en considérant l'exemple suivant :

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

Dans un composant, disons que je souhaite utiliser un état dérivé stocké, comme ceci :

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

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

Si j'ajoutais maintenant une nouvelle entrée à la carte, j'aurais pensé que la propriété count se mettrait à jour automatiquement en raison des dépendances que j'ai utilisées.

J'ai essayé de remplacer la carte dans cet exemple par un tableau et cela a parfaitement fonctionné, le composant affichait les valeurs correctes et attendues.

Quelqu'un peut-il me diriger vers la bonne partie de la documentation, ou expliquer pourquoi les tableaux fonctionnent mais pas les cartes ?

P粉299174094
P粉299174094

répondre à tous(1)
P粉821274260

Lorsque la valeur du signal change, il en informe ses abonnés, mais au lieu de définir une nouvelle valeur, vous y insérez une nouvelle entrée, cette opération n'est donc pas considérée comme une mise à jour. Vous devriez créer une nouvelle carte. Vous pouvez déplacer les valeurs insérées dans une nouvelle carte en clonant l'ancienne carte.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal