支付寶小程序框架 頁(yè)面·getCurrentPages方法

2020-09-18 10:18 更新

getCurrentPages() 方法用于獲取當(dāng)前頁(yè)面棧的實(shí)例,返回頁(yè)面數(shù)組棧。第一個(gè)元素為首頁(yè),最后一個(gè)元素為當(dāng)前頁(yè)面。

框架以棧的形式維護(hù)當(dāng)前的所有頁(yè)面。路由切換與頁(yè)面棧的關(guān)系如下:

路由方式 頁(yè)面棧表現(xiàn)
初始化 新頁(yè)面入棧
打開新頁(yè)面 新頁(yè)面入棧
頁(yè)面重定向 當(dāng)前頁(yè)面出棧,新頁(yè)面入棧
頁(yè)面返回 當(dāng)前頁(yè)面出棧
Tab 切換 頁(yè)面全部出棧,只留下新的 Tab 頁(yè)面

下面代碼可以用于檢測(cè)當(dāng)前頁(yè)面棧是否具有 5 層頁(yè)面深度。

if (getCurrentPages().length === 5) {
      my.redirectTo({
        url: '/pages/logs/logs'
      });
    } else {
      my.navigateTo({
        url: '/pages/index/index'
      });
    }

注意: 不要嘗試修改頁(yè)面棧,會(huì)導(dǎo)致路由以及頁(yè)面狀態(tài)錯(cuò)誤。

常見問題

Q:getCurrentPages 方法怎么獲取頁(yè)面路徑?

A:JSON.stringify(getCurrentPages()[N].proto.route),可以獲取到頁(yè)面路徑(N 為頁(yè)面數(shù)組棧中頁(yè)面對(duì)象所在序號(hào),最大值為當(dāng)前頁(yè))。

Q:getCurrentPages 方法可以獲取到參數(shù)嗎?

A:不可以,只能獲取頁(yè)面棧,無法獲取參數(shù)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)