9***@qq.com
9***@qq.com
  • 发布:2020-04-21 09:01
  • 更新:2020-04-21 10:59
  • 阅读:1198

给上一个页面设置数据,然后返回上一页,上一个页面视图不更新的问题

分类:HTML5+

页面跳转流程:在 add 页面,跳转到 select 选择页面,选择数据后返回上一个页面

代码如下:
add 页面

select 页面:

此问题只在第一次返回时没有更新数据到视图上,再次 跳转到 select 选择页面,选择数据后返回上一个页面,数据可以更新到视图上

请问这个问题有解决办法吗?

2020-04-21 09:01 负责人:无 分享
已邀请:
6***@qq.com

6***@qq.com

把delta:1删掉试试

  • 9***@qq.com (作者)

    去掉还是一样的

    2020-04-21 09:36

  • 6***@qq.com

    回复 9***@qq.com: 你add页面没接收这个数据呀,你挂到page上面 又没去赋值到add

    2020-04-21 09:43

  • 9***@qq.com (作者)

    回复 6***@qq.com: page 就是上一个页面的对象呀,而且现在是第一次不行,相同的流程再点一次可以成功更新到视图上

    2020-04-21 09:51

吃辣条的大妖怪

吃辣条的大妖怪 - 宝子们,现在公司没在用app开发了,纯H5开发,之后的后期有空在补笔记

刚好看到了,我之前写的时候,记在笔记里了,看看你能不能用

当前页面

backDetail() {
let pages = getCurrentPages();
var prevPage = pages[pages.length - 1]; //上一个页面

            //直接调用上一个页面的setData()方法,把数据存到上一个页面中去  

            prevPage.setData({  
                isDoRefresh: true  
            });  
            uni.navigateBack();  

},

返回页面

onShow:function(){
//放置在onShow内监听;
let pages = getCurrentPages();
let currPage = pages[pages.length - 1];
if(currPage.data.isDoRefresh){ //返回后是否需要刷新数据;
//写入需要调用的function
}

}

  • 9***@qq.com (作者)

    用你的方法试了下,还是不行的,说几个问题:

    1.pages[pages.length - 1] 是当前页面

    2.uniapp 不用setData对数据赋值,直接 this. isDoRefresh 就行

    3.uniapp 里没有this.data.isDoRefresh 用法,直接this.isDoRefresh 就可以


    你看我说的是否正确,欢迎指正

    2020-04-22 08:53

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