小编pan*_*kis的帖子

Vue2 + Vuex 提交不提交(没有 Vue devtools)

我正在尝试使用 Vuex 完成应该是一项基本任务,但由于某种原因它不起作用,经过广泛搜索后,我非常感谢任何帮助。

我正在尝试做的事情

使用新属性(对象)更新我商店中对象的列表(对象)。

出了什么问题

在我什至调度操作以从我的组件提交新对象之前(我正在通过 mapActions 访问该操作),列表中任何现有对象中的某些属性都会更新为与我的组件中的输入/v-models 相关的值. 正如我的代码如下所示,我知道对象的反应性是一个问题,所以我Vue.set(...)根据文档使用(突变遵循 Vue 的反应性规则

为什么我不认为我在做一些完全愚蠢的事情......(但可能是错的)

当我在 DevTools 中检查突变时,突变按预期记录,当我按下“提交”/“提交全部”时,列表中的现有对象不再响应输入的更改。鉴于该操作实际上应该将更改提交给状态,这显然是我期望发生的行为。然而,为什么它不能在代码中工作,而只能在开发工具中工作?

我再次为可能是基本问题的问题道歉,但我已经看到其他一些人有类似的问题,但没有书面解释我们遗漏了什么......

初始状态

const state = {
  quotes: {}
}
Run Code Online (Sandbox Code Playgroud)

突变

mutations: {
  [types.ADD_QUOTE] (state, payload) {
    Vue.set(state.quotes, payload.id, payload)
  }
}
Run Code Online (Sandbox Code Playgroud)

行动

actions: {
  addQuote ({ commit }, payload) {
    commit(types.ADD_QUOTE, payload) 
  }    
}
Run Code Online (Sandbox Code Playgroud)

成分

<template>
  <div class="quote-block">
    <label>price</label>
    <input type="text" v-model="quote.price">
    <label>id</label>
    <input type="text" v-model="quote.id">
    <!-- Just displaying props below -->
    <div>{{ quote.item }}</div>
    <div>{{ quote.vendor …
Run Code Online (Sandbox Code Playgroud)

vuex vuejs2 vue-devtools

4
推荐指数
1
解决办法
3314
查看次数

标签 统计

vue-devtools ×1

vuejs2 ×1

vuex ×1