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

207
Vistas
Svelte: cómo suscribirse a la tienda dentro de una instancia de clase

¿Cómo me suscribo a una instancia de writable() de una clase?

 class User{ public money: Writable<number> = writable(0); public goToJob(){ money.update(prev => prev + 100); } }
 <script> let user = new User(); </script> <div>{user.$money}</div> <button on:click={() => user.goToJob()}>Go to Job</button>

Cuando hago clic en el botón, espero que el dinero se agregue y se refleje en el div. Sin embargo, no se actualiza, aunque estoy haciendo referencia correctamente a la tienda de money .

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

0

Resuelto; Bastante fácil en realidad. Simplemente desestructura la instancia de la clase:

 <script> let user = new User(); let { money } = user; </script> <div>{$money}</div> <button on:click={() => user.goToJob()}>Go to Job</button>
about 4 years ago · Juan Pablo Isaza Denunciar

0

Nunca vi una tienda como una propiedad de clase, sino que la tienda se usa a menudo como una especie de DTO. No sé nada sobre mecanografiado, pero creo que el siguiente código te dará una mejor idea de lo que estoy hablando:

 <script> import user from './user-store.js'; { $user // This automatically subscribes and unsubscribe to the User store. } $user = {money:100}; </script> <div>{$user.money}</div> <button on:click={() => user.goToJob()}> Go to Job </button>

Mostrar o asignar un valor a la tienda usa el prefijo $ ($user.money) pero llamar a una función no (user.goToJob())

 import { writable } from 'svelte/store'; const user = writable({}); // the store is an empty object by default const userStore = { subscribe: user.subscribe, set: u => { user.set(u); console.log(u); }, delete: () => { user.set(null); }, goToJob: () => { user.update(user => { user.money += 100; return user; }); } }; export default userStore;

Enlace aquí:

https://svelte.dev/repl/ec4a3dee9f3c4bbebf929ee5772c48c5?version=3.46.2

Mejor.

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