javascript - 在 VueJS 中查看存储在 Vuex 中的数组

标签 javascript arrays vue.js vuex

我有一个客户列表,它实际上是一个对象数组。我将它存储在 Vuex 中。我在我的组件中呈现列表,每一行都有一个复选框。更准确地说,我使用 keen-ui,复选框渲染部分如下所示:

<tr v-for="customer in customers" :class="{ selected: customer.selected }">
    <td>
      <ui-checkbox :value.sync="customer.selected"></ui-checkbox>
    </td>
    <td>{{ customer.name }}</td>
    <td>{{ customer.email }}</td>
</tr>

所以复选框直接更改客户数组,这是不好的:我在 Vuex 中使用严格模式,它会抛出一个错误。

我想跟踪数组何时更改并调用一个操作以更改 vuex 状态:

watch: {
 'customers': {
  handler() {
    // ...
  },

  deep: true
}

但是它仍然直接改变了客户。我该如何解决这个问题?

最佳答案

首先,使用 .sync 时要小心:它将在 2.0 中被弃用。

看看这个:http://vuex.vuejs.org/en/forms.html ,因为这个问题在这里解决了。基本上,此复选框应触发 inputchange 上的 vuex 操作。摘自文档:

<input :value="message" @input="updateMessage">

updateMessage 是:

vuex: {
  getters: {
    message: state => state.obj.message
  },
  actions: {
    updateMessage: ({ dispatch }, e) => {
      dispatch('UPDATE_MESSAGE', e.target.value)
    }
  }
}

如果你不想跟踪突变,你可以将这个组件的状态从 vuex 移开,以便能够在它的所有组件中使用 v-model荣耀。

关于javascript - 在 VueJS 中查看存储在 Vuex 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38875088/

相关文章:

c++ - 在 C++ 中将正 float 组转换为带舍入的无符号短数组

vue.js - 使用嵌套数据和 v-slot :item Vuetify 数据表

vue.js - 如何解决服务器中的错误[BABEL]最大大小500KB问题?

arrays - 如何更改二维数组的大小

javascript - 子路由中的 routerLink 错误

javascript - 如何设置 Google Chrome 语音输入控件的麦克风样式

javascript - 引用语法与 replace() 的行为不匹配

arrays - 在 n 个元素的数组中打印长度为 k 的所有子集的高效算法

macos - 苹果操作系统 : Install vue cli does work properly

javascript - d3.js 数据第一次未绑定(bind)