想被带飞的鱼 2022-09-30 10:08 采纳率: 62.5%
浏览 18
已结题

子组件的生命周期created会覆盖父组件传递下来的通过watch监听修改过一遍的值。

表格数据的替换,子组件通过方法使用 created渲染数据,但是另一个地方数据通过父组件传递下来的数据通过监听修改数据,但是子组件原生就会执行created,会覆盖父组件传递下来的值,这个该如何解决

父组件传值给子组件(taskJournal)

 <constructionLog
          :showDetails="false"
          :commonVariable="true"
          :taskJournal="taskJournal"
          class="white"
          ref="login"
        />

子组件监听并修改


 props: {
    taskJournal: {
      type: Array,
    },
  },
watch: {
    taskJournal:function(val){
      if(val){
        this.tableData = val;
      }
    }
  },

子组件初始渲染的值created

  created() {
    this.getData();
  },
 //获取列表
    async getData() {
      let data = await taskJournalFindAll(params);
      let datainfo = data.data;
      this.tableData = datainfo.tableList;
    },

子组件渲染列表


<el-table
        :data="tableData"
        ref="tableData"
      >
</el-table>
  • 写回答

1条回答 默认 最新

  • H5周 2022-09-30 10:21
    关注

    this.getData(); 放到mounted里面试试

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月8日
  • 已采纳回答 9月30日
  • 创建了问题 9月30日