Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

172
Views
Tratando de almacenar y recuperar objetos de una tienda esbelta

Estoy jugando con la tienda svelte en svelte docs env svelte Stores/autosubscription .

De hecho, estoy tratando de agregar objetos a una matriz llamada puntajes. Mi código es el siguiente.

App.esbelta

 <script> import { scores } from './stores.js'; import Incrementer from './Incrementer.svelte'; import Decrementer from './Decrementer.svelte'; import Resetter from './Resetter.svelte'; </script> <h1>The count is:</h1> {#each $scores as score, i} <ul> <li> name: {score.name} </li> <li> score: {score.score} </li> <li> maxScore: {score.maxScore} </li> </ul> {/each} <Incrementer/> <Decrementer/> <Resetter/>

Incrementador.esbelto

 <script> import { scores } from './stores.js'; function increment() { count.update(n => n.push(n[0])); } </script> <button on:click={increment}> + </button>

Resetter.svelte

 <script> import { scores } from './stores.js'; function reset() { scores.set([{ name: 'name', score: 1, maxScore: 1 },{ name: 'anderer', score: 4, maxScore: 8 }]); } </script> <button on:click={reset}> reset </button>

y finalmente las tiendas.js

 import { writable } from 'svelte/store'; export const scores = writable([{name: 'NAME', score: 1000, maxScore: 3000}]);

(Omití Decrementer.svelte que es idéntico a Incrementer.svelte pero implementa n.pop)

Cuál es mi problema, que el incrementador y el decrementador no cambian los puntajes de $ que se ven en la ventana de resultados.

También he intentado empujar un objeto en Incrementer.svelte:

 function increment() { count.update(n => n.push({name: 'name', score: 2, maxScore: 3})); }

El código de reinicio funciona como pretendía.

¿Puede alguien decirme, por favor, lo que me estoy perdiendo aquí?

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Donde falta algo de contexto aquí

 count.update(n => n.push(n[0]));

el count no está definido en ninguno de los fragmentos, supongo que te refieres a puntajes.actualizar

La devolución de la devolución de llamada pasada a la actualización se convierte en el nuevo valor, en el caso de una inserción que será un número (la nueva longitud de la matriz) no la nueva matriz.

esperaba ver un

 scores.update(n => { n.push(n[0]); return n}); // or scores.update(n => [...n, n[0]]); // or $scores = [...$scores, $scores[0]];

Para depurar una tienda, escriba la siguiente línea en un componente:

 $: console.log($scores);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!