【问题标题】:How can I make editing functionality with Vuex store?如何使用 Vuex 商店制作编辑功能?
【发布时间】:2019-03-06 03:36:19
【问题描述】:

我应该怎么做才能在我的 Vue + Vuex 商店上拥有编辑功能?这是我的代码:

<ul>
  <li v-for="todo in todos" :key="todo.task">
    <span v-bind:class="{todo: todo.completed}">{{todo.id}} - {{todo.task}}</span>
    <button @click="editTodo(todo)">Edit</button>
    <button @click="toggleTodo(todo)">Complete</button>
    <button @click="removeTodo(todo)">Delete</button>
  </li>
</ul>
{
  mutations: {
    editTodo(state, todo) {
      state.todos = state.todos.map(originalTodo =>
        originalTodo.id === todo.id ? todo.task : originalTodo
      );
    }
  },

  actions: {
    async editTodo({ commit }, task) {
      const res = await axios.patch(`http://localhost:4444/todos/${todo.id}`, {
        task
      });

      commit("editTodo", res.data);
    }
  }
}

【问题讨论】:

    标签: vue.js vuex nuxt.js


    【解决方案1】:

    您可以使用state.todos.splice(state.todos.findIndex(original =&gt; todo.id === original.id), 1, todo) 代替.map()

    【讨论】:

      猜你喜欢
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 2019-11-03
      相关资源
      最近更新 更多