最近在作小程序的時候遇到這麼一個有趣的問題,就是從A頁面跳轉到B頁面,若是B頁面須要在接口加載以後更改title,
而且若是接口請求過慢,還滅有請求完畢時就點擊返回按鈕回到A頁面,這時B頁面的請求會繼續執行,並在執行完畢後修改了A頁面的title。javascript
我的猜測,小程序自己屬於單頁面應用,代碼的運行權限沒有處理好,就像上面這種狀況,B頁面的代碼穿越到了A頁面的環境裏面,而且執行。java
/b
,而後在方法中再次獲取當前路徑,多是/b
,也多是/a
,/a
,則是上面提到問題狀況,這個時候就不用取改變title了,如果/b
,則能夠更改。// utils.js const getCurrentRouter = function () { let arr = getCurrentPages(), len = arr.length; return arr[len - 1].route; } export {getCurrentRouter}; // b.js import {getCurrentRouter}; import { getDataForB } from '../../../servies/services.js'; Page({ onLoad (options) { this.currentRouter = getCurrentRouter(); }, // 獲取數據 getData () { getDataForB().then(() => { // 獲取數據後判斷router是否一致 if (this.currentRouter == getCurrentRouter()) { wx.setNavigationBarTitle({ title: '要修改的title' }) } }) } })
我的博客:午後南雜git