vue组件库element-ui 的Table内容显示不更新

<el-table border :data="filelist">
  <el-table-column label="ID" width="90px" prop="fid"></el-table-column>
  <el-table-column label="所属项目" prop="project"></el-table-column>
</el-table>
    loadFilelsit() {
      this.$request.get('/resource/myfilelist', {
        params: {
          '_catalog': 'relatednop', '_direction': 'DESC', '_num': this.numperpage, '_page':1
        }
      }).then((m) => {
        this.filelist = JSON.parse(JSON.stringify(m.data.items))
        this.totalnum = m.data.total
        let filenum = this.filelist.length
        for(var idx = 0; idx < filenum; idx++) {
          this.filelist[idx].project = '未分配项目'
          this.updateSingleFileinfo(idx)
        }
      }).catch((err) => {

      })
    },

    updateSingleFileinfo(idx) {
      this.$request.get('/resource/file/'+this.filelist[idx].fid, {
        params: {
          '_expand': 1
        }
      }).then((m) => {
        // 项目名
        if(m.data.project_info) {
          this.filelist[idx].project = m.data.project_info.name
        }
        else {
          this.filelist[idx].project = '未分配项目'
        }
        // 文件名
        // this.filelist[idx]['filename'] = m.data['filename']
        this.filelist[idx]['filename'] = m.data.filename

      }).catch((err) =>{
      })

filelist是data中定义的一个数组,数组中的内容经过两次http请求获取完整。第一次http请求获取到filelist中文件列表每个成员的ID,第二次获取到filelist中每一项的详细信息,并更新到filelist数组的成员上去。

但是第二次Http请求后更新了数组信息后,表格上显示的“所属项目”始终无法更新,而在调试下看到filelist数组的内容又的确是已经变化了的。

这个双向数据绑定是假的吧。

阅读 17.1k
2 个回答
//这样写
this.$set(this.filelist,this.filelist[idx].project,m.data.project_info.name)

ps: 请看 vue 数组

其实table组件由row-key属性,指定对应的值之后,就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏