0
点赞
收藏
分享

微信扫一扫

【快应用】为什么调用router.clear()后,立即调用router.getLength()发现页面并未销毁

彩虹_bd07 2022-12-09 阅读 102

 

现象描述

调用router.clear()后,立即调用router.getLength()发现页面并未销毁。

实现方式

调用router.clear()后,页面销毁需要一定的时间,建议使用setTimeout延迟1s后再调用router.getLength(),这样就可以获取最新的页面栈数量。

代码如下:

<script>

import router from '@system.router';

export default {

data: {

photoUri: '/Common/logo.png',

taskflag: '',

___PARAM_LAUNCH_FLAG___: '',

length: '',

pages: {},

pageFrom: ''

},

onInit() {

this.$page.setTitleBar({ text: 'deepLink' })

var that = this;

that.taskflag = this.___PARAM_LAUNCH_FLAG___;

// 调用getPages方法

let pages = router.getPages()

// 由于获得的值是一个JSON数组,所以直接打印是打印不出来的,可以使用下面的方法来打印

console.log("tag", this.printJSONArray(router.getPages()));

that.pages = this.printJSONArray(router.getPages());

that.length = router.getLength();

console.log("pages' length = " + that.length);

},

printJSONArray(array) {

let result = ""

const suffix = ", "

Array.isArray(array) && array.forEach((element, index) => {

result = result + JSON.stringify(element) + (index === array.length - 1 ? "" : ", ")

})

return result

},

clear: function () {

router.clear()

setTimeout(() => {

var that = this;

// 调用getPages方法

let pages = router.getPages()

// 由于获得的值是一个JSON数组,所以直接打印是打印不出来的,可以使用下面的方法来打印

console.log("tag", this.printJSONArray(router.getPages()));

that.pages = this.printJSONArray(router.getPages());

that.length = router.getLength();

console.log("pages' length = " + that.length);

}, 1000);

}

}

</script>

【快应用】为什么调用router.clear()后,立即调用router.getLength()发现页面并未销毁_JSON

​欲了解更多更全技术文章,欢迎访问​​https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh​​

举报

相关推荐

0 条评论