我刚开始学习vuex,无法删除项目.我可以直接删除组件中的项.

deleteCar (cars, id) {
        this.$http.delete('http://localhost:3000/cars/' + cars.id)
          .then(() => {              
              this.cars.splice(id, 1)
          })
      }

在vuex中,我有:

state: {
    car: {},
    cars: []
  },
  mutations: {
    ADD_CAR (state, car) {
      state.car = car
    },
    GET_CARS (state, cars) {
      state.cars = cars
    }

  },
  actions: {
    createCar({commit}, car) {
      axios.post('http://localhost:3000/cars', car)
        .then(() => {
          commit('ADD_CAR', car)
        })
    },

    loadCars({commit}) {
      axios.get('http://localhost:3000/cars')
        .then(res => {
            const cars = res.data
            commit('GET_CARS', cars)
        })
    }
  }

我要删除项目的组件中的代码:

<div class="card mb-3" v-for="(car, i) in cars" :key="i">
      <div class="card-header">
      Cars name: {{ car.carName }}
      </div>
      <div class="card-body">
        <h5 class="card-title">Country: {{ car.country }}</h5>
        <p class="card-text">Year of manufacture: {{ car.carYear }}</p>
        <button class="btn btn-primary mb-5" @click="deleteCar(car, i)">Delete Car</button>
      </div>
    </div>

我可以加车也可以买车.但不能删除

推荐答案

你想通过变异来删除这辆车

这是你的方法

deleteCar (cars, id) {
    this.$http.delete('http://localhost:3000/cars/' + cars.id)
        .then(() => {              
              this.cars.splice(id, 1);
        });
}

你想把它改成deleteCars({commit}, id),而不是deleteCar(cars, id)

所以你的行动是

deleteCar ({commit}, id) {
    this.$http.delete('http://localhost:3000/cars/' + id)
        .then(() => {              
             commit('DELETE_CAR', id);
        });
}

你有一个Mutations DELETE_CAR

DELETE_CAR(state, id){
    index = state.cars.findIndex(car => car.id == id);
    state.cars.splice(index, 1);
}

Vue.js相关问答推荐

VueJS不会呈现一个名为None的组件""

如何将$validator实例注入到使用组合API语法的Vue2.7应用程序中

vue : 多个样式的类绑定在一个

纵横比元素溢出容器

Vue,Composition API:如何从react 式转换中跳过深度嵌套的属性?

更改 Vuetify 轮播高度

Webpack 导入的模块不是函数

在 SASS 中使用 Vuetify 类

如何在 .js 文件中使用 Vue i18n 翻译?

安装后运行computed计算函数

如何从 vue 组件调用 App.vue 中的方法

用于本地编辑的 Vuex 克隆对象

如何让 Vue 在 shadow dom 中工作

Vue.js webpack:如何获取目录中的文件列表?

如何在 Vue.js 插槽范围内传递方法

Vue.js 中的 CSS 框架

Vuetify 过渡:如何设置过渡速度

如何使用 Vuetify 验证复选框组

Vue 3 组合 API 数据()函数

将它们分开时将 Django 的 csrf_token 放入 Vuejs