今天我在做uniapp項目中從父頁面跳轉到子頁面提交數據返回父頁面的時候發現數據並沒有執行onload生命周期,使用getCurrentPages()獲取當前頁面棧的實例從這個思路往下深入
uni.switchTab({
//這個地址看你page.json中tabbar使用地址 url: '../myfile/myfile',
//成功返回的回調 success: (res) => {
//獲取父頁面的實例 let page = getCurrentPages()[0];
//判斷如果拿不到實例的情況下直接return出去 if (page == undefined || page == null) return;
//我發現突然直接page.getmyfileMsg()方法的時候會報錯,具體原因是還沒有獲取到就去調用所以找不到,然后我加上一個判斷 if(page.route == 'pages/myfile/myfile') {
//這里的getMyfileMsg()這個方法是你父頁面中onload需要執行什么方法你就在這里執行就可以了 page.$vm.getMyfileMsg() } } })
以上就是我自己研究出來的解決方案,在百度摸索了一圈都是不能用的,只能自己console打印一步一步的找了 ,希望能幫到后面的人,感覺是uniapp的一個bug算了,記錄一下以備以后不時之需,親測可用解決
但是我看到網上大多數和我的寫法都一樣但是都是錯的首先最后這個位置的時候大多數人的博客基本全都是page直接找方法或者page.onLoad 這樣回報錯is not function 因為找錯位置了 於是我補充以下截圖僅供參考 順便告訴錯誤博客的人及時修改,別讓遇到問題的人進坑