Я пытаюсь установить значение по умолчанию для некоторого состояния при создании компонента.На практике я хочу, чтобы предпочтительный язык пользователя prefLang
основывался на navigator.language
, если они не указали это через пользовательский ввод.
Мой текущий подход не работает, хотя раньше у меня это работалопереходит на использование Vuex.Я не получаю ошибок, но происходит то, что текущее значение по умолчанию, установленное для prefLanf
, UNDEF
, отображается вместо вывода navigate.language.
Возникает вопрос: как установить начальное значение для некоторых свойств состояния при отсутствии ввода пользователя?
Ниже приведено слишком упрощенное представлениекод, с которым я работаю:
store.js
const state ={
userData: {
prefLang: "UNDEF"
// some other data..
}
}
const getters = {
defaultLang: () => { navigator.language.slice(0,2) }
}
const actions = {
setDefaultLang({ state, getters }) {
state.userData.prefLang = getters.defaultLang
}
}
Chat.vue
<template>
<div class="chat-display">
<p>{{ this.userData.prefLang }}</p>
</div>
</template>
<script>
import { mapGetters, mapActions, mapState } from 'vuex'
export default {
name: 'chat-display',
created() {
this.store.dispatch('setDefaultLang')
},
computed: {
...mapGetters([
'defaultLang'
]),
...mapState([
'userData'
])
},
methods: {
...mapActions([
'setDefaultLang'
])
}
</script>
Спасибозаранее.