Javascript Vue和Vue多选。制作选项以对所选语言作出反应
我目前正在一个支持多种语言的Vue网站上工作。所选语言存储在vuex存储中,我有如下计算属性langJavascript 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和其他计算属性中使用了
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切换到方法。通过切换到一个方法,它将更频繁地运行(因为它不会有计算魔法),但应该可以工作。谢谢。目前无法访问我的计算机,但稍后将立即测试。谢谢。目前无法访问我的计算机,但稍后将立即进行测试