Estoy trabajando en un proyecto Vue. Intenté agregar un personaje a un accesorio usando este código:
mounted() { this.link = this.link + '/'; }el problema es que me sale este error en la consola:
Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'link'
No debe mutar accesorios, una forma de hacerlo es crear una propiedad calculada :
computed: { formattedLink: function() { return this.link + '/'; } }De los documentos de Vue:
Todos los accesorios forman un enlace unidireccional entre la propiedad secundaria y la principal: cuando la propiedad principal se actualiza, fluirá hacia la secundaria, pero no al revés. Esto evita que los componentes secundarios cambien accidentalmente el estado de los padres, lo que puede hacer que el flujo de datos de su aplicación sea más difícil de entender.
Puede emitir los datos del componente secundario y luego escucharlos en el componente principal en busca de cambios para mantener los datos sincronizados.
<child-component :link="value" @updatedLink="link = $event"></child-component>Desde el niño simplemente emita el valor actualizado.
mounted() { const val = this.link + '/'; this.$emit('updatedLink', val) }Puede leer más sobre esto aquí: https://v3.vuejs.org/guide/component-custom-events.html