前言
小程序api
一般在用戶點擊刪除某件商品時,然后再次點擊查看時,一般情況下就會找不到這個被刪除的商品,因為實現了局部刷新效果。
如果點擊可以看到證明你的寫法不對。
需求
小程序實現頁面B返回頁面A并刷新頁面A的數據
第一種方法
使用事件通道-----------------------------------------------待寫ing
wx.navigateTo({url: '/pages/selectaddress/selectaddress',events: {}})
//events事件通道
第二種方法
-------------------------------------------------使用頁面棧
假如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(){
var that=this
var data=[]//定義一個空數組
that.setData({
btnaswear: data,//這邊是你請求接口存的值
updatalist1: data
})
that.onLoad()//這個是重新調取
}