Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

147
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda