前言
小程序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()//这个是重新调取
}