1***@qq.com
1***@qq.com
  • 发布:2022-12-10 23:07
  • 更新:2022-12-14 21:59
  • 阅读:191

求助 下拉刷新中调用的方法不能成功改变数据

分类:uni-app

现在有一个方法 是用来刷新页面数据的

这个方法如果用一个按钮@click调用 是可以使页面中数据刷新的

但是如果在onPullDownRefresh中调用 无法刷新数据

更详细的:

方法中会一开始console.log(this.list),接着this.list修改list中的数据 最后console.log出来修改后的list值

当按钮点击后 控制台中的内容会先打印onLoad里面获取到的,再打印修改后的,接着组件中的数据也会改变

但如果是下拉刷新 打印一切正常 会先打印之前的list值(这里叫做list1数据) 接着打印修改后(姑且叫做list2数据),但是元素中的数据不改变。再次下拉,打印的内容先是list2数据,接着会变成一个新数据(命名为list3),显示依旧不改变。

奇怪的是,进行完上述操作后,如果再次点击按钮,打印的初始值会是list1数据,接着是重新请求的一个list,这时候界面能够刷新到新请求的。

现在不知道是什么问题 求支个招

!!!上面的list1 2 3 4是为了方便描述,程序中没有最后的数字

this.$forceUpdate()试过了,没用。

按钮代码
<u-button type="primary" @click="testSaying" text="刷新" class='refreshButton'></u-button>

下附部分代码 删除了一部分敏感信息 可能有用

//下拉刷新
onPullDownRefresh() {
var _this = this;
_this.testSaying();
},

//调用的方法
testSaying() {

            var _this = this;  
            console.log(JSON.stringify(_this.list))  
            _this.getData1();  
        },  

getData1() {
uni.request({
url: '',
success: (res) => {
this.list=res.data

                    console.log(JSON.stringify(this.list))  
                                            this.$forceUpdate();  
                            uni.stopPullDownRefresh();  

                },  
                fail: () => {  
                    uni.showToast({  
                        icon: 'error',  
                        title: '网络错误'  
                    })  
                }  
            })  

        },  
2022-12-10 23:07 负责人:无 分享
已邀请:
DCloud_UNI_WZF

DCloud_UNI_WZF

测试未复现该问题,请检查代码逻辑或提供测试工程并说明运行平台

要回复问题请先登录注册