Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 删除存储Vuex中的项目_Vue.js_Nuxt.js_Vuex - Fatal编程技术网

Vue.js 删除存储Vuex中的项目

Vue.js 删除存储Vuex中的项目,vue.js,nuxt.js,vuex,Vue.js,Nuxt.js,Vuex,我想删除位于我的商店中的商品。 我看到了这个解决方案,这似乎是我正在寻找的,但我的对象中有另一个“级别”,所以我不知道如何从子级别删除元素 我的数据结构 { id:1, 姓名:“我的客户一号”, 项目:[ { id:1, 姓名:'姓名', 测试:[ { id:1, 名称:“名称测试” }, { id:2, 名称:“名称测试2” } ] }, { id:2, 姓名:“其他姓名” } ] } 所以我看到了如何删除上面链接的项目。但是如何删除一行测试呢 我在vue中执行此操作: this.$stor

我想删除位于我的商店中的商品。 我看到了这个解决方案,这似乎是我正在寻找的,但我的对象中有另一个“级别”,所以我不知道如何从子级别删除元素

我的数据结构

{
id:1,
姓名:“我的客户一号”,
项目:[
{
id:1,
姓名:'姓名',
测试:[
{
id:1,
名称:“名称测试”
},
{
id:2,
名称:“名称测试2”
}
]
},
{
id:2,
姓名:“其他姓名”
}
]
}
所以我看到了如何删除上面链接的项目。但是如何删除一行测试呢

我在vue中执行此操作:

this.$store.commit(“deletetetest”,this.idProject,e)
在我的店里:

deleteTest(状态,{data,e}){
const allTestsOfProject=state.listProjects.projects.find(p=>p.id==data)
log(“全部”,allTestsOfProject)
const-oneTest=allTestsOfProject.studies.find(q=>q.id==e)
console.log(“一次测试”,一次测试)
//state.listProjects.projects.splice(oneTest,1)
}

非常感谢您的帮助

您的代码有两个问题:

第一个问题
commit
函数只需要两个参数:

  • 提交名称(作为字符串)
  • 有效载荷项目
  • 因此,如果你想传递多个道具,你应该将它们作为一个对象传递

    this.$store.commit(“deletetetest”,this.idProject,e)//不起作用
    这个.$store.commit(“deletetetest”,{data:this.idProject,e})//将起作用
    
    现在您可以调用
    deleteTest(state,{data,e})

    第二个问题 您应该获得测试对象的索引,而不是对象本身

    const-oneTest=allTestsOfProject.studies.find(q=>q.id==e)//不起作用
    const oneTest=allTestsOfProject.studies.findIndex(q=>q.id==e)//将起作用
    

    现在您可以调用:
    allTestsOfProject.studies.findIndex(q=>q.id==e)
    删除您的测试

    您可以添加运行解决方案时发生的错误吗无错误:此代码删除了整个项目,而只删除了id为1的测试项。
    console.log(oneTest)
    工作正常吗?我认为我做得不好:我曾直接在我的Vue模板中尝试过;我的控制台日志中有我的好数据。但是当我在商店里传递我的函数时,它就不再工作了。我想我的有效载荷数据有问题,因为它不再识别任何东西。为了更清晰,我编辑了我的问题。请尝试:
    allTestsOfProject.tests.splice(oneTest,1)