Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

`useSelector` triggers `state_proxy_equality_mismatch` on every store update in svelte-store

Abierto Apto para principiantes
#322 3 comentarios 5 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@seongwon030 ya está trabajando en esto.

Desde el 22/5/2026.

  • #334 de @seongwon030 — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript
Área
frontend

Línea de trabajo

Comienza en packages/svelte-store/src/useSelector.svelte.ts, en la rama de comparación indicada, y luego reproduce la advertencia con el Svelte Playground enlazado o con la configuración de @tanstack/svelte-table indicada. Comprueba la interacción entre slice, data y defaultCompare; la tarea estará terminada cuando la advertencia state_proxy_equality_mismatch haya desaparecido y la comparación funcione correctamente al actualizarse el store.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Describe the bug

In useSelector, slice is Proxied via $state, whereas the data resolved through selector(s) is not Proxied.

Because of this, the comparison performed by compare function (where defaultCompare is used) triggers Svelte's state_proxy_equality_mismatch warning. This causes the comparison to always return false, making this conditional branch a kind of dead code.

https://github.com/TanStack/store/blob/a378a51fa53af899dec1c146933d037a2811a86e/packages/svelte-store/src/useSelector.svelte.ts#L37-L50

Steps to Reproduce the Bug or Issue

It is easiest to try out @tanstack/svelte-table v9 alpha to understand it better.

Here is the demo in Svelte Playground.
https://svelte.dev/playground/6cb4726d28594a3a9781f8a785d331fe?version=latest

<script lang="ts">
  import { createTable, tableFeatures } from '@tanstack/svelte-table';

  const _features = tableFeatures({});
  let data = $state([{ id: 1 }]);
  const table = createTable({
    _features,
    _rowModels: {},
    get data() { return data; },
    columns: [{ accessorKey: 'id', header: 'ID' }],
  });
</script>

<button onclick={() => (data = [...data, { id: data.length + 1 }])}>Add</button>
{#each table.getRowModel().rows as row (row.id)}
  <div>{row.original.id}</div>
{/each}
Expected behavior

Fix this warning so the comparison works right.

Screenshots or Videos

No response

Platform
Additional context

It will probably be resolved just by changing slice variable $state to $state.raw.
This is because the slice reassigning the entire variable, so there seems to be no reason to make it a Proxy.

Lenguaje dominante
TypeScript
Estrellas
905
Forks
117
Merge medio
4 d 20 h
PR fusionados (30 d)
17

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de TanStack/store

Todos los issues de TanStack/store

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.