Javascript Vue和Vue多选。制作选项以对所选语言作出反应

Javascript Vue和Vue多选。制作选项以对所选语言作出反应,javascript,html,vue.js,vuejs2,vue-multiselect,Javascript,Html,Vue.js,Vuejs2,Vue Multiselect,我目前正在一个支持多种语言的Vue网站上工作。所选语言存储在vuex存储中,我有如下计算属性lang lang(){ return this.$store.state.lang } mappedOptions(){ return this.options.map( (o, ind) => { return {name: o.title[this.lang], code: ind} } ); } 现在我在v-ifs、shows和其他计算属性中使用了

我目前正在一个支持多种语言的Vue网站上工作。所选语言存储在vuex存储中,我有如下计算属性lang

lang(){
  return this.$store.state.lang
}
mappedOptions(){
  return this.options.map(
    (o, ind) => {
      return {name: o.title[this.lang], code: ind}
    }
  );
}
现在我在v-ifs、shows和其他计算属性中使用了这个属性,它工作得非常好。只有一件事我遇到了问题,那就是multiselect()。computed options属性看起来像这样

lang(){
  return this.$store.state.lang
}
mappedOptions(){
  return this.options.map(
    (o, ind) => {
      return {name: o.title[this.lang], code: ind}
    }
  );
}

现在的问题是,这不起作用。这些选项可能是在创建的生命周期挂钩中初始化的,因此以后不会更新。你有什么聪明的想法吗?我如何在这个vue multiselect中使用多种语言?除了这个问题,我非常喜欢这个组件,所以我不想切换。

在multiselect上放置一个
v-if=“computedOption”
,应该可以解决这个问题

在multiselect上放置一个
v-if=“computedOption”
,应该可以解决这个问题

顺便说一句,“这不起作用”对故障排除没有帮助。如果看不到options变量,唯一突出的就是
o.title[this.lang]
看起来不对劲。您确定
o.title
是键匹配
lang
的对象吗?是。钥匙是对的。它也会在创建时立即渲染,只是更改语言vuex存储中的状态,然后不会更新MultiSelect OK。有两件事可以尝试:1。在您的
mappedpoptions()
中添加一些伪代码,以排除map()的一些错误:
让x=this.lang;控制台日志(x)和2。还可以尝试将mappedOptions切换到方法。通过切换到一个方法,它将更频繁地运行(因为它没有计算出的魔力),但应该可以工作。顺便说一句,“这不起作用”对于故障排除没有用处。如果看不到options变量,唯一突出的就是
o.title[this.lang]
看起来不对劲。您确定
o.title
是键匹配
lang
的对象吗?是。钥匙是对的。它也会在创建时立即渲染,只是更改语言vuex存储中的状态,然后不会更新MultiSelect OK。有两件事可以尝试:1。在您的
mappedpoptions()
中添加一些伪代码,以排除map()的一些错误:
让x=this.lang;控制台日志(x)和2。还可以尝试将mappedOptions切换到方法。通过切换到一个方法,它将更频繁地运行(因为它不会有计算魔法),但应该可以工作。谢谢。目前无法访问我的计算机,但稍后将立即测试。谢谢。目前无法访问我的计算机,但稍后将立即进行测试