详细问题描述

var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
var prevPage = pages[pages.length - 2]; //上一个页面
//直接调用上一个页面的setData()方法,把数据存到上一个页面中去
prevPage.setData({
isDoRefresh:true
})
uni.navigateBack();

上述代码中报错:’prevPage.setData’ is undefined

在HbuilderX中新建一个uniapp项目,新建两个页面,其中一个页面跳转另一个页面之后,在第二个页面中onLoad函数内调用上述方法,会发现对应问题

‘xxxxx.setData’ is undefined

HbuilderX 2.6.11.20200409

运行端:h5

        onLoad() {  
        var pages = getCurrentPages();  
        var currPage = pages[pages.length - 1]; //当前页面  
        var prevPage = pages[pages.length - 2]; //上一个页面  
        //直接调用上一个页面的setData()方法,把数据存到上一个页面中去  
        prevPage.setData({  
                isDoRefresh:true  
        })  
         uni.navigateBack();  
    },  

·回复

uni-app不支持也不可以使用 setData
setData 是小程序的方法 设置的是小程序Page对象上的data,并非更新的vm对象上的data,即使不报错,也不可以使用,这样会导致数据同步问题。

修改其他页面数据,推荐使用 uni.$emit()

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up