vue.js unshift一个新的项目在商店假的API数组

jv2fixgn  于 2023-05-07  发布在  Vue.js
关注(0)|答案(1)|浏览(129)

我希望在单击Add后,在tasks数组的顶部显示一个新的task todo标题。按钮。我用POST请求假API来做,但是有错误404,我在页面上看不到添加的todo。即使我在控制台中获得了新的任务对象。
https://stackblitz.com/edit/nuxt-bootstrap-vue-dynamic-img-bkwixg?file=pages%2Findex.vue,store%2Findex.js,components%2FTask.vue

// Store

const actions: {

const res = await fetch('https://dummyjson.com/todos/add', {
    method: 'POST',
    headers: {
      'Content-Type': 'appication/json;charset=utf-8',
    },
    body: JSON.stringify(data),
  });
  if (res.ok) {
    let result = await res.json();
    context.commit('addnewTask', result);
  }
  return res.ok;
},
}
export const mutations = {
  addnewTask(state, newTask) {
    state.tasks.unshift(newTask);
  },
}

// Child component

<template>
    <div class="create-new">
      <input
        type="text"
        v-model="todo"
        @keypress.enter="addTask"
        placeholder="add task"
      />
      <button @click="addTask">Add</button>
    </div>
    <div class="tasks">
      <Task v-for="task in tasks" :key="task.id" :task="task" />
    </div>
  </main>
</template>

<script>
export default {
  data() {
    return {
      todo: '',
      completed: false,

      search: '',
    };
  },
  computed: {
    tasks() {
      return this.$store.state.tasks;
    }
  methods: {
    addTask() {
      let newTask = {
        id: Math.floor(Math.random() * 25 + 200),
        todo: this.todo,
        completed: false,
      };
      if (newTask) {
        this.$store.dispatch('addTask', newTask);
}
    },
qjp7pelc

qjp7pelc1#

这不是404,而是400,这表明客户端出错了。查看浏览器开发工具中的网络选项卡,来自www.example.com的响应dummyjson.com如下:

{"message":"User id is required"}

检查文档https://dummyjson.com/docs/todos#add,它确实显示userId作为请求主体的一部分

body: JSON.stringify({
    todo: 'Use DummyJSON in the project',
    completed: false,
    userId: 5,
  })

而您的请求是id而不是userId。还要注意的是,jsondummy.com的用户ID范围仅为1 - 100。发送任何超出该范围的userId将生成另一个错误。
您还有一个问题涉及这里的一个错字:'Content-Type': 'appication/json;charset=utf-8',其中apication应为application
updated working stackblitz

相关问题