es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué reacciona un valor interno a los cambios desde toda la referencia?

Tengo un objeto …

export class Note {
  type = ''
  id: string = v4()
  creationDate: string = DateTime.now().toISO()
  modificationDate: string = DateTime.now().toISO()
  text = ''
  title = ''
  tags: string[] = []
  deleted = false
  deletedAt?: string = ''
  erased = false
  erasedAt?: string = ''
  archived = false
  archivedAt?: string = ''
  deleteOn?: string = ''
  pinned = false
  // métodos siguen
}

… que paso como una prop a un componente.

“`tsx

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que toWatch es un array de referencias a las propiedades de note, pero al usar toRef() solo se crea una copia superficial del valor de la propiedad, por lo que cuando una de las propiedades cambia, la referencia en sí misma no cambia, lo que hace que el callback de watch() se active para cualquier cambio en las propiedades.

    Para resolver esto, en lugar de usar toRef(), se debe utilizar toRefs() para crear un proxy reactivo de note, lo que permite que el callback de watch() observe los cambios en cada una de sus propiedades de forma individual.

    El código actualizado debería lucir así:

    “`

Comments are closed.