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

353
Visualizações
Svelte: pase y vincule datos al componente secundario en cada ciclo

Estoy muy confundido acerca de pasar accesorios a un componente dentro de un bucle en Svelte. El comportamiento que esperaba del fragmento de código a continuación es que un cambio en los archivos de variables de la tienda activa la reproducción del contenido que funciona perfectamente para las clases divs y {file}: {is_open} . Sin embargo, el componente secundario Icon no recibe las actualizaciones de la variable is_open . Esto conduce a una situación extraña en la que {file}: {is_open} representa como filename: true en este componente, mientras que el icono del componente secundario mostraría filename: false en su lugar.

 {#each Object.entries($files) as [file, is_open], i} <div class:open={is_open} class:closed={!is_open}> <div on:click={() => openFile(file)}> {file}: {is_open} </div> <div on:click={() => closeFile(file)}> <Icon bind:open={is_open} /> </div> </div> {/each}

Buscando una solución para este problema, me topé con este hilo que indica que este es el comportamiento esperado en este caso. Pero, ¿cómo puedo hacer que esto funcione entonces? En marcado contraste con mi experiencia general con Svelte, encuentro esto extremadamente contradictorio.

EDITAR:

Resulta que no uso is_open directamente en el componente secundario, sino que almaceno el valor en otra variable sin notación $: por lo tanto, esta variable no se vuelve a calcular. Mala mía, problema resuelto.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

lo que está buscando es una clave para cada bloque , esto asegurará que los divs (el bloque dentro de cada declaración) se asignen correctamente al estado de archivo correcto.

también puede consultar el tutorial oficial esbelto sobre cada clave en su caso

 {#each Object.entries($files) as [file, is_open], i (file)} <!--added (file)--> <div class:open={is_open} class:closed={!is_open}> <div on:click={() => openFile(file)}> {file}: {is_open} </div> <div on:click={() => closeFile(file)}> <Icon bind:open={is_open} /> </div> </div> {/each}
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