现在有一个方法 是用来刷新页面数据的
这个方法如果用一个按钮@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: '网络错误'
})
}
})
},
1 个回复
DCloud_UNI_WZF
测试未复现该问题,请检查代码逻辑或提供测试工程并说明运行平台