uniapp中uni.navigateBack返回后刷新頁面數(shù)據(jù)的實現(xiàn)
一、前言
在移動端中,數(shù)據(jù)列表中某項數(shù)據(jù)點擊編輯,進入下一個頁面編輯數(shù)據(jù),保存后回退到數(shù)據(jù)列表頁,此時需要刷新列表數(shù)據(jù),否則顯示的列表數(shù)據(jù)還是舊的。這種場景感覺很多地方都有出現(xiàn),是需要詳細說說方法,也就是uniapp中uni.navigateBack返回后刷新頁面數(shù)據(jù)。
1.1、uni.navigateBack

二、方法
2.1、父頁面設(shè)置鉤子函數(shù)onBackPress
詳細文檔可點擊【跳轉(zhuǎn)】,適用于刷新多處數(shù)據(jù)
export default {
onBackPress(options) {
this.refreshData();
},
methods:{
refreshData: function() {
//加載數(shù)據(jù)
}
}
}

2.2、uni.$emit和uni.$on監(jiān)聽通知數(shù)據(jù)變更
2.2.1、子頁面
子頁面在需要返回上一頁面的地方寫入uni.navigateBack,然后在success回調(diào)中uni.$emit發(fā)送數(shù)據(jù)更新通知
uni.navigateBack({
delta: 1, // 返回層數(shù),2則上上頁
success() {
uni.$emit('update',{msg:'頁面更新'})
}
})
2.2.2、父頁面
父頁面在初始化時uni.$on監(jiān)聽數(shù)據(jù)更新,在回調(diào)函數(shù)中處理數(shù)據(jù)。在頁面銷毀時移除監(jiān)聽
export default {
mounted() {
uni.$on('update', function(data) {
//觸發(fā)更新后
})
},
//為了優(yōu)化代碼,可以加上移除事件,避免重復(fù)監(jiān)聽事件
onUnload() {
// 移除監(jiān)聽事件
uni.$off('update');
}
}
2.3、onShow鉤子函數(shù)處理數(shù)據(jù)
2.3.1、子頁面
準備回退到上一頁之前,將上一頁的是否刷新參數(shù)值改為是的狀態(tài)
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2]; // 上一個頁面
// 直接調(diào)用上一個頁面的setData()方法,把數(shù)據(jù)存到上一個頁面中去
prevPage.setData({
isRefresh: 1
})
// 再根據(jù)需求,確定返回上一頁面
uni.navigateBack({
delta: 1
})
2.3.2、父頁面
在onShow鉤子函數(shù)中獲取判斷條件
export default{
data() {
return{
isRefresh:false
}
},
onShow() {
// 如果是提交狀態(tài)返回isRefresh=1,才刷新頁面,從詳情過來無需刷新
let pages = getCurrentPages();
let currPage = pages[pages.length - 1];
if(currPage.__data__.isRefresh) {
// 重新獲取數(shù)據(jù)
this.getData(true)//獲取列表數(shù)據(jù)
// 每一次需要清除,否則會參數(shù)會緩存
currPage.__data__.isRefresh=false
}
}
}
2.4、注意
如果出現(xiàn)數(shù)據(jù)沒有更新,可以使用$forceUpdate或者先置空數(shù)據(jù)再賦值數(shù)據(jù),大概率是數(shù)據(jù)沒有響應(yīng)
最后
到此這篇關(guān)于uniapp中uni.navigateBack返回后刷新頁面數(shù)據(jù)的實現(xiàn)的文章就介紹到這了,更多相關(guān)uniapp uni.navigateBack返回刷新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ElementUI中el-tree如何獲取每個節(jié)點點擊的選中狀態(tài)
ElementUI中el-tree獲取每個節(jié)點點擊的選中狀態(tài),有時候需要獲取el-tree每個節(jié)點的點擊狀態(tài),可以通過以下方式,其中isCheck類型為布爾值,本文結(jié)合實例代碼介紹ElementUI中el-tree獲取每個節(jié)點點擊的選中狀態(tài),感興趣的朋友一起看看吧2023-12-12
bootstrap weebox 支持ajax的模態(tài)彈出框
本篇介紹的bootstrap weebox(支持ajax的模態(tài)彈出框),歷經(jīng)多次修改,目前版本已經(jīng)穩(wěn)定,整合了bootstrap的響應(yīng)式,界面簡單,功能卻無比豐富,支持ajax、圖片預(yù)覽等等2017-02-02
javascript函數(shù)中參數(shù)傳遞問題示例探討
本節(jié)主要與大家探討下javascript函數(shù)中參數(shù)傳遞問題,有不明白的朋友可以參考下2014-07-07
在瀏覽器中獲取當(dāng)前執(zhí)行的腳本文件名的代碼
同事提了一個問題,如何在瀏覽器中動態(tài)插入的 JavaScript 文件中,獲取當(dāng)前文件名?2011-07-07
解決uni-app微信小程序input輸入框在底部時,鍵盤彈起頁面整體上移問題
問題是這樣的input?獲取焦點時會自動調(diào)起手機鍵盤,設(shè)置?:adjust-position="true",會導(dǎo)致鍵盤彈起時頁面整體上移,這篇文章主要介紹了解決uni-app微信小程序input輸入框在底部時,鍵盤彈起頁面整體上移問題,,需要的朋友可以參考下2022-08-08
JavaScript校驗Number(4,1)格式的數(shù)字實例代碼
這篇文章主要介紹了JavaScript校驗Number(4,1)格式的數(shù)字實例代碼,本文實現(xiàn)思路明確代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03
layer彈出層倒計時關(guān)閉的實現(xiàn)方法
今天小編就為大家分享一篇layer彈出層倒計時關(guān)閉的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09

