白加黑chris
白加黑chris
  • 发布:2019-05-28 12:52
  • 更新:2022-02-16 15:47
  • 阅读:1847

uni-app修改父页面数据,渲染正常,但js取值仍为旧数据?

分类:uni-app

A为父页面,B为新开的页面。测试环境:微信小程序开发者工具。

在B中,
getCurrentPages()[getCurrentPages().length - 1 - 1].setData({
test:'new'
})
uni.navigateBack()

发现父页面A的界面已渲染出新值,调试窗口的AppData中也为新值。
但在父页面A中js取值,this.test 仍为旧数据,何解,请高手指教?

setData为官方推荐的那个方法

setData:function(obj){
let that = this;
let keys = [];
let val,data;
Object.keys(obj).forEach(function(key){
keys = key.split('.');
val = obj[key];
data = that.$data;
keys.forEach(function(key2,index){
if(index+1 == keys.length){
that.$set(data,key2,val);
}else{
if(!data[key2]){
that.$set(data,key2,{});
}
}
data = data[key2];
})
});
}

2019-05-28 12:52 负责人:无 分享
已邀请:
3***@163.com

3***@163.com

同样的问题, 在js中 setData 一个数据, 模板中正常显示, 但是js中就是获取不到

2***@qq.com

2***@qq.com

2022年, 这个问题依然存在, 我修改上个页面的json一个属性的值, 视图变更了, 提交的js上传接口, 还是旧的数据

2***@qq.com

2***@qq.com

var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一个页面
prevPage.$vm.real.bankName = 'aaa'

这这种方式可以解决, 不要用setData

该问题目前已经被锁定, 无法添加新回复