caso 1
data(){ return { serverNames : ['local'] } } computed: { ...mapState('store', { local_server_name: (state) => { this.serverNames[0] = state.local_server_name // Cannot read property 'serverNames' of undefined return state.local_server_name }, }), },caso 2
computed: { ...mapState('store', { local_server_name: (state) => { serverNames[0] = state.local_server_name // serverNames is not defined return state.local_server_name }, }), }, De hecho, agregando esto o no, no funciona. Si quiero usar la función de flecha, ¿cómo obtener esa matriz serverNames ?
La función de flecha conservará this en función del ámbito en el que se definió, que está dentro del objeto pasado como parámetro a mapState donde this refiere al objeto global ( window ).
Pero eso no viene al caso porque no debería estar mutando el estado dentro de una propiedad calculada; esto puede conducir a infinitas re-renderizaciones y/o Vue se quejará.
Si desea actualizar el estado del componente desde el estado de Vuex, debe hacerlo dentro de un observador. Tal vez algo como esto:
data() { return { serverNames: ['local'] } }, computed: { ...mapState('store', [ 'local_server_name' ]) }, watch: { local_server_name(value) { this.serverNames[0] = value } }