Solidjs: Wenn Map in createStore verwendet wird, wird es bei Änderungen nicht aktualisiert.
P粉299174094
P粉299174094 2023-07-20 14:47:02
0
1
571

Ich bin relativ neu bei Solidjs, vielleicht übersehe ich etwas, aber ich versuche, das Problem hier anhand des folgenden Beispiels zu verstehen:

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

Angenommen, ich möchte in einer Komponente einen gespeicherten abgeleiteten Zustand verwenden, etwa so:

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

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

Wenn ich der Karte jetzt einen neuen Eintrag hinzufüge, hätte ich gedacht, dass sich die count-Eigenschaft aufgrund der von mir verwendeten Abhängigkeiten automatisch aktualisieren würde.

Ich habe versucht, die Karte in diesem Beispiel durch ein Array zu ersetzen, und es hat perfekt funktioniert, die Komponente zeigte die richtigen und erwarteten Werte an.

Kann mich jemand zum richtigen Teil in der Dokumentation verweisen oder erklären, warum Arrays funktionieren, Karten jedoch nicht?

P粉299174094
P粉299174094

Antworte allen(1)
P粉821274260

当信号的值发生变化时,它会通知其订阅者,但是您并没有设置一个新值,而是向其中插入了新的条目,因此这个操作不被视为更新。您应该设置一个新的地图。您可以通过克隆旧地图将插入的值移动到新地图中。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage