大写疑惑!vue 子组件调用父组件方法不执行(各种方法都试了)

table表格的数据是通过父组件的taskData传过去的,现在子组件删除之后,想要重新刷新一下数据 调用一下接口,写了很多方法,不执行,不知道哪里出了问题

taskContent 是子组件 是一个table表格
`

 <div class="tab">
  <el-tabs v-model="activeName" type="card">
    <el-tab-pane label="任务内容" name="first">
      <taskContent :taskData="taskData" :id="VoyageId" :fatherMethod="fatherMethodOther"></taskContent>
    </el-tab-pane>
    <el-tab-pane label="标准物质">
      <meterial ref="meterial"></meterial>
    </el-tab-pane>
    <el-tab-pane label="人员资质">角色管理</el-tab-pane>
    <el-tab-pane label="样品瓶">定时任务补偿</el-tab-pane>
    <el-tab-pane label="仪器设备">定时任务补偿</el-tab-pane>
    <el-tab-pane label="试剂">定时任务补偿</el-tab-pane>
  </el-tabs>
</div>

`

`
//获取子组件列表数据

getTaskList(id) {
  this.$axios
    .get(`url`)
    .then(res => {
      if (res.success) {
        this.taskData = res.result;
      } else {
        this.$message.error(res.message);
      }
    });
},

 rowClick(row) {
  this.getTaskList(row.id);
},

`

子组件
`
//删除

del(row) {
    this.$axios
      .delete("url", { data: { params } })
      .then(res => {
        if (res.success) {
          this.$message.success("删除成功");
          console.log(123);
          想在这个地方执行一下回调getTaskList 都不执行
          this.$parent.$emit("getTaskList", this.id);
          this.$emit("getTaskList", this.id);
        } else {
          this.$message.error(res.message);
        }
      });
  });
},

`

使用 this.$parent.getTaskList()会报错 not a function

其他的不执行

是我父子组件嵌套的问题吗

阅读 269
评论 1月20日提问
    2 个回答
    林枫
    • 348
    <taskContent :taskData="taskData" @getTaskList="getTaskList" :id="VoyageId" :fatherMethod="fatherMethodOther"></taskContent>

    删掉this.$parent.$emit("getTaskList", this.id);
    其他不变

    评论 赞赏 1月20日

      不要用自组件调用父组件,用事件。

      评论 赞赏 1月20日
        撰写回答

        登录后参与交流、获取后续更新提醒