小程序如何实现返回上一页并实时刷新上一页的数据?(页面栈)

前言

小程序api
一般在用户点击删除某件商品时,然后再次点击查看时,一般情况下就会找不到这个被删除的商品,因为实现了局部刷新效果。
如果点击可以看到证明你的写法不对。
需求
小程序实现页面B返回页面A并刷新页面A的数据

第一种方法

events使用事件通道-----------------------------------------------待写ing

 wx.navigateTo({url: '/pages/selectaddress/selectaddress',events: {}})
 //events事件通道 

第二种方法

getCurrentPages-------------------------------------------------使用页面栈
假如a页面里面有全部的数据 点击编辑进入到b页面,
在b页面删除某一个商品,点击返回a页面实时刷新a页面的数据

A页面

html

<view>
    <view wx:for="{{list}}" wx:key="id">全部</view>
</view>

js

Page({
  /**
   * 页面的初始数据
   */
  data: {
        list:[]
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
     this.main()
  },
//这个是a页面获取的数据
main(){
        wx.request({
                url: 'test.php', //仅为示例,并非真实的接口地址
                data: {
                  x: '',
                  y: ''
                },
                header: {
                  'content-type': 'application/json' // 默认值
                },
                success (res) {
                  console.log(res.data)
                   this.setDate({
                           list:res.data
                   })
                }
              })
},
 
})
B页面

html

<view>
    <view bindtap="btndelect">点击删除</view>
</view>

js

Page({

        /**
         * 页面的初始数据
         */
        data: {
        },
        btndelect() {
                // 这里面请求数据的逻辑-----
                // let pages = getCurrentPages();// 获取页面栈
                //  let current= pages[pages.length - 1]; // 当前页面
                //  let prevpage= pages[pages.length - 2]// 上一个页面
                //  wx.navigateBack();// 返回上一页
                var pages = getCurrentPages();
                var beforePage = pages[pages.length - 2];
                // 假设main()为页面A的数据方法,
                beforePage.main();
                wx.navigateBack({//返回页面A
                        delta: 1,
                })
        },
})
//当有多级的时候,我们要进行跳转
/*
navigateTo, redirectTo 只能打开非 tabBar 页面。
switchTab 只能打开 tabBar 页面。
reLaunch 可以打开任意页面。当跳转时出现问题时,我们推荐使用这个
*/

第三种方法

这个方法是在onshow里面写

onshow(){
 var that=this
    var data=[]//定义一个空数组
    that.setData({
      btnaswear: data,//这边是你请求接口存的值
      updatalist1: data
    })
    that.onLoad()//这个是重新调取
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值