`shallow` doesn't correctly compare different object instances if they only have property getters
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 52/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- react, typescript
- Bereich
- frontend
Rechercherichtung
Beginne damit, die shallow-Implementierung des Stores und die vorhandenen Tests zu finden. Reproduziere den gemeldeten Vergleich mit zwei unterschiedlichen Objekten, die Werte über Getter bereitstellen, füge anschließend Testabdeckung hinzu und passe das Verhalten so an, dass unterschiedliche Instanzen nicht als gleich behandelt werden; die relevanten Tests sollten danach bestehen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
I'm using @tanstack/react-form, but traced the issue back to the store here. Specifically, I'm trying to store Temporal.Duration values, but store updates are not being received via useStore because shallow returns true when both objects have no keys, i.e. Object.keys(objA) return [], instead of comparing referential equality at that point.
Steps to Reproduce the Bug or Issue
This, and any object factory that use getters instead of static properties return true.
shallow(Temporal.Duration.from({ hours: 1 }), Temporal.Duration.from({ days: 2 }));
Expected behavior
Expect to see false, since they are different values, different objects.
Screenshots or Videos
No response
Platform
- OS: macOS
- Browser: Arc (Chromium)
- Version: 138.0
Additional context
No response
- Vorherrschende Sprache
- TypeScript
- Sterne
- 912
- Forks
- 118
- Ø Merge
- 11 Std. 48 Min.
- Gemergte PRs (30 T.)
- 10
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus TanStack/store
-
`useSelector` triggers `state_proxy_equality_mismatch` on every store update in svelte-storeEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
TanStack/store#322 · 3 Kommentare · 5 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
Missing atom docsEvtl. vergeben @looooown2006 hat das vor 181 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 1 Tag
-
compareDeep reports unequal Sets as equalEvtl. vergeben @Gourav224 hat das vor 13 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 30/100
Maintainer antworten meist innerhalb von 1 Tag
-
Reading a computed atom without subscribing can prevent garbage collectionEvtl. vergeben @Sheraff hat das vor 37 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 58/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
TanStack/store#299 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
cloudflare-cache-binding: `unstorage://` keys are rejected by the Cache API, cache never storesOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 2 Tagen
-
reproduced
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
anomalyco/opencode#62052 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
strapi/design-system#2084 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag