【发布时间】:2019-04-24 09:07:41
【问题描述】:
我正在尝试在创建组件时为某些状态设置默认值。在实践中,我希望用户的首选语言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>
提前致谢。
【问题讨论】:
标签: javascript vue.js vuex