为了账号安全,请及时绑定邮箱和手机立即绑定

vue element-ui父子组件通信延迟问题

vue element-ui父子组件通信延迟问题

PIPIONE 2018-12-20 18:15:33
父组件关键:<el-button type="text" size="small" @click='handleEdit(scope.$index, scope.row)'>    <updateUser :ftsData="tableData" :ftsIndex="updateIndex">    </updateUser></el-button>handleEdit (index, row) {  this.updateIndex = index}子组件关键:<el-button type="info" @click="clickUpdate()">修改</el-button>this.dialogFormVisible = truethis.userForm = this.ftsData[this.ftsIndex]当前结果:获取父组件table中的行的索引值,传递到子组件,子组件根据索引(通信延迟)填充表单。存在问题:子组件获取父组件的索引总是慢一拍,比如说我选中了第2行,理应索引值为1,但是组件填充上一次比如说是第3行,索引值为2的数据,导致了每次修改新行时,第一次填充的都是上一次修改的数据。说得精简一点,就是vue element-ui父子组件通信延迟问题。
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

1.父组件封装数据为finalData


<el-button type="text" size="small" @click='handleEdit(scope.$index, scope.row)'>

    <updateUser :ftsData="finalData">

    </updateUser>

</el-button>


handleEdit (index, row) {

  this.updateIndex = index

  this.finalData = this.tableData[this.updateIndex]

}

2.子组件添加watch监听finalData变化


watch: {

  finalData: function () {

    this.userForm = this.finalData

  }

}

备注:问题中子组件的关键代码不变


查看完整回答
反对 回复 2019-01-25
  • 1 回答
  • 0 关注
  • 568 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信