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

105
Visualizações
¿Por qué una propiedad de objeto se marca como de solo lectura en mi código javascript (Vue)?

Tengo una aplicación Vue 2 con una variable de estado (una matriz de objetos de cuadro) llamada boxes . Tengo una propiedad calculada que extrae un subconjunto de estos cuadros ( nearest_box_linked_boxes ).

Tengo un método que itera a través de las casillas devueltas por nearest_box_linked_boxes y cambia el valor de una propiedad en cada elemento:

 for(let i=0;i<this.nearest_box_linked_boxes.length;i++) { let box = this.nearest_box_linked_boxes[i]; box.object_class = this.$store.state.selected_object_class; box.patch(); }

Este método está devolviendo un error:

 vue.esm.js:648 [Vue warn]: Error in v-on handler: "TypeError: Cannot assign to read only property 'object_class' of object '#<Box>'"

Nunca hice explícitamente ninguno de los objetos de cuadro (o sus propiedades) de solo lectura. Entiendo que no puedo escribir en el objeto de matriz nearest_box_linked_boxes (el objeto de matriz principal) porque es una propiedad calculada, pero pensé que debería ser posible modificar las propiedades de cada elemento de esta matriz.

¿Me estoy encontrando con un problema causado por Vue y las propiedades calculadas aquí, o algo más?

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

0

Siempre debe tratar las propiedades calculadas como "solo lectura", con la excepción de los configuradores calculados.

Si bien es técnicamente posible mutar un objeto devuelto por propiedades calculadas, generalmente es una mala idea. El objeto se reemplazará tan pronto como cambie una dependencia y sus cambios se perderán.

about 4 years ago · Juan Pablo Isaza Relatório

0

Esto resultó ser mi propio error. La respuesta de Nikola probablemente sea una buena práctica, pero en realidad estaba llamando a Object.freeze en algún momento de mi código y lo había olvidado. Este no fue un efecto secundario de nada relacionado con Vue ni nada realmente misterioso.

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