Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
El valor reactivo esbelto no se actualiza con el cambio de tienda

Hola chicos, tengo este código para verificar si un elemento está seleccionado

 $: checkbox = $chosenPackage.products.find(e => e.id == selectedProduct.product.id && e.name == selectedProduct.product.name)?.variants.some(e => e.id == v.id && e.name == v.name) || false

Yo console.log el resultado y siempre devuelve indefinido, sin embargo, cuando lo ejecuto en la consola (reemplazando todas las tiendas con objetos duplicados) devuelve el valor correcto

Estaba funcionando antes, pero tuve que cambiar la estructura de la tienda y fue entonces cuando dejó de funcionar, el marcado se comporta como se supone que debe (se aplican todas las clases para la checkbox == true ) pero no es reactivo, es decir, cuando elimino una variante de la matriz no elimina las clases, y cuando reviso la tienda veo que la variante se eliminó correctamente,

Cuando los componentes se vuelven a renderizar, todo se ve bien, pero se supone que se vuelve a renderizar automáticamente si la checkbox de verificación cambia y se supone que la checkbox de verificación cambia automáticamente si algo en la tienda cambia pero no lo hace.

cualquier ayuda sera muy apreciada, gracias de antemano

Editar: me acabo de dar cuenta de que en otra parte se actualiza

Aquí está el código que actualiza la tienda en la parte que no funciona

 $chosenPackage.products.find(e => e.id == selectedProduct.product.id && e.name == selectedProduct.product.name).variants = [v]

Así que básicamente estoy sobrescribiendo toda la matriz con la nueva variante seleccionada

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema es que está utilizando una invocación de método dentro de su asignación de actualización ( find ). Tan pronto como hay una invocación de método de este tipo, Svelte ya no compila eso en una declaración de "actualización de la tienda" porque no puede saber qué hace ese método y si sería correcto actualizar la tienda. Por lo tanto, utilice el método de update en este caso

 chosenPackage.update(current => { current.products.find(e => e.id == selectedProduct.product.id && e.name == selectedProduct.product.name).variants = [v]; return current; });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda