【发布时间】:2020-02-27 10:28:23
【问题描述】:
Vue js 抛出警告说 vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys detected: '0'。这可能会导致更新错误。
我尝试在计算变量中使用 getter 和 setter 并将值分派到 Vuex 存储。
这是html元素的代码
<!-- Displaying Sample TappingPessure input field-->
<v-layout
wrap row
class="text-xs-left mx-auto pt-2"
style="height:50px;" >
...some code
<v-flex xs12 md1 sm1 class="ma-0 pa-0"
>
<v-text-field
class="myfont1 inputValue"
name="pressure"
id="pressure"
required
v-model="tappingPressure"
type="number"
reverse
style="max-width:70px;"
>
</v-text-field>
</v-flex>
...some code
</v-layout>
这里是计算变量的代码
tappingPressure:{
get () {
return this.$store.getters.tappingPressure
},
set (value) {
this.$store.dispatch('setTappingPressure',{data:value})
}
},
这里是更新变量的vuex代码
import Vue from 'vue'
import Vuex from 'vuex'
import '@/firebase/init.js'
import firebase from 'firebase/app'
import 'firebase/auth'
import router from "@/router.js"
Vue.use(Vuex)
export default new Vuex.Store({
state: {
...some code
tappingPressure:"",
...some code
},
mutations: {
setTappingPressure(state, payload) {
state.tappingPressure = payload.data;
},
...some code
},
actions: {
setTappingPressure({
commit
}, payload) {
commit("setTappingPressure", payload);
},
...some code
},
getters: {
tappingPressure(state) {
return state.tappingPressure;
},
}
});
我试图将代码保留在步进器之外,调用 Vuetify 对话框的函数运行良好。当我从 Vuetify 步进器内部调用该函数时,会出现此问题。代码工作正常。 vuex 正在更新。警告消息充斥着控制台。
请有人提出一条出路。提前致谢
【问题讨论】:
-
该错误与您使用密钥有关。这就是模板中的
key属性。我在您的模板中没有看到key,所以我们似乎遗漏了最重要的部分。 -
感谢您的回复。如何在模板中添加密钥?你能详细说明一下吗?
-
您不需要添加密钥。问题是您已经有一个密钥,但它被设置为不合适的值。根据图片,它似乎位于
AnadezMain的模板中。 -
谢谢你。您的回复帮助我自己解决了问题,我修复了它,正如您从我发布的答案中看到的那样。再次感谢.. 干杯
-
嗨,skirlte,事实上,问题并没有真正解决。我不得不花更多的时间在它上面。最后,正如您从我发布的答案中看到的那样,我想通了。无论如何,谢谢。
标签: javascript vue.js vuex vuetify.js