【问题标题】:Axios Vue.js table is not reflecting response dataAxios Vue.js 表未反映响应数据
【发布时间】:2020-12-04 11:06:45
【问题描述】:

我有一个函数,每当上传文件时我都会调用它以刷新保存文件的表。

response.data 会返回正确的数据,但我的表格没有反映它。知道我可以做些什么来强制更新我的表格以显示新条目吗?

如果我刷新页面,数据就会正确返回。

function GetFileList(intID) {
    //$("#fileuploadstbl").empty();
         
    var ItemsVue = new Vue({
        el: '#fileUploadContent',
        data: {
            items: []
        },
        mounted: function () {
            var self = this;
    
            axios.get("getUploads.ashx")
                .then(response => {
                    self.items = response.data 
                }, function (err) {
                    console.log('error');
                    console.log(err.status);
                    console.log(err.response.status);
                })
                .catch(err => {
                    console.log('error');
                    console.log(err.status);
                });
        }
    });
    $("#fileUploadContent").show();
}

这就是我绑定<tr>的方式:

<tr 
    v-for="item in items" class="tddata" 
    v-bind:data-ID="item.ID" 
    v-bind:data-Uploadid="item.Uploadid"
>
    <td>{{item.Filename}}</td>
    <td 
        style="cursor: pointer;text-align:center;"  
        v-on:click="ViewFile(item.Filepath,item.Filename)"
    >
        View File
    </td>
    <td 
        style="cursor: pointer;text-align:center;"  
        v-on:click="DeleteFile(item.ID,item.guid,item.Filepath,item.Filename)"
    >
        View File
    </td>
    <td style="text-align:center;">{{item.UploadedBy}}</td>          
</tr>

【问题讨论】:

  • 试试indexkey 换成v-for
  • 我已经添加了这个: v-for="(item, index) in items" :key="item.ID" 仍然没有刷新我的表。谢谢你的建议。
  • 使用axios,在不同的情况下也会发生类似的事情:我的意思是,虽然data 得到更新,但视图仍然显示相同的内容,我解决了这个重置数组的问题,然后在同一个函数中添加另一个 API 调用(watch 等在这里没有帮助)

标签: javascript vue.js axios


【解决方案1】:

它将根据您的情况自动更新。也许您可以检查您的 response.data 是否保存在“项目”中。如果还是不行,可以尝试使用 forceupdate 功能

this.$forceUpdate();

【讨论】:

  • 我认为以及 response.data 返回正确的项目,但它只是没有更新的表,我没有奇怪的控制台错误。好像这个表 fileUploadContent 没有用 response.data 更新我会试试这个,让你知道。谢谢你的回复。
猜你喜欢
  • 2020-04-08
  • 2019-09-19
  • 2019-03-11
  • 1970-01-01
  • 2020-10-13
  • 2020-12-25
  • 2022-01-25
  • 1970-01-01
  • 2018-02-16
相关资源
最近更新 更多