zhangdaren
zhangdaren
  • 发布:2021-04-29 20:02
  • 更新:2021-04-29 20:02
  • 阅读:143

【报Bug】 H5里两个页面连续跳转时,getCurrentPages内容不会变

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win7

HBuilderX类型: 正式

HBuilderX版本号: 3.1.12

浏览器平台: Chrome

浏览器版本: 90

项目创建方式: HBuilderX

示例代码:

第一个页面的代码:

<template>  
    <view class="content">  
        <image class="logo" src="/static/logo.png"></image>  
        <view class="text-area">  
            <text class="title">{{ title }}</text>  
        </view>  
        <view class="">上一个页面title: {{ lastPageTitle }}</view>  

        <navigator url="../next/next"><button>下一页</button></navigator>  
    </view>  
</template>  

<script>  
export default {  
    data() {  
        return {  
            title: 'Hello',  
            lastPageTitle: ''  
        };  
    },  
    onLoad() {  
        var pages = getCurrentPages();  
        var currPage = pages[pages.length - 1]; //当前页面  
        var prevPage = pages[pages.length - 2]; //上一个页面  
        if (prevPage) {  
            console.log(prevPage.$vm.title, "index")   
            this.lastPageTitle = prevPage.title;  

            prevPage.$vm.test()  
        } else {  
            this.lastPageTitle = '没有上一页';  
        }  
    },  
    methods: {  
        test(){  
            console.log("hello test--index")  
        }  
    }  
};  
</script>

第二个页面的代码:

<template>  
    <view class="">  
        <view>上一个页面title: {{ lastPageTitle }}</view>  
        <navigator url="../index/index"><button>去首页</button></navigator>  
    </view>  
</template>  

<script>  
export default {  
    data() {  
        return {  
            title: '下一页',  
            lastPageTitle: ''  
        };  
    },  
    onLoad() {  
        //let that = getCurrentPages()[getCurrentPages().length -1].$vm;  
        var pages = getCurrentPages();  
        var currPage = pages[pages.length - 1]; //当前页面  
        var prevPage = pages[pages.length - 2]; //上一个页面  
        if (prevPage) {  
            console.log(prevPage.$vm.title, 'next'); //app  
            this.lastPageTitle = prevPage.title; //h5  

            prevPage.$vm.test();  
        } else {  
            this.lastPageTitle = '没有上一页';  
        }  
    },  
    methods: {  
        test() {  
            console.log('hello test--next');  
        }  
    }  
};  
</script>

操作步骤:

具体看demo包

预期结果:

在H5平台正常

实际结果:

H5平台异常

bug描述:

H5里两个页面连续跳转时,getCurrentPages内容不会变化,一直为第二个页面的信息。

在APP和微信小程序里是正常的!!!只有H5平台异常

两个页面来回切换,在APP上面是这样:
19:58:17.468 下一页, index at pages/index/index.vue:26
19:58:17.487 hello test--next at pages/next/next.vue:32
19:58:18.729 Hello, next at pages/next/next.vue:22
19:58:18.749 hello test--index at pages/index/index.vue:36
19:58:19.876 下一页, index at pages/index/index.vue:26
19:58:19.896 hello test--next at pages/next/next.vue:32
19:58:20.747 Hello, next at pages/next/next.vue:22
19:58:20.767 hello test--index at pages/index/index.vue:36
19:58:21.487 下一页, index at pages/index/index.vue:26
19:58:21.507 hello test--next at pages/next/next.vue:32

而H5上面是这个效果:
Hello next
index.vue:36 hello test--index
next.vue:22 下一页 next
next.vue:32 hello test--next
next.vue:22 下一页 next
next.vue:32 hello test--next
next.vue:22 下一页 next
next.vue:32 hello test--next
next.vue:22 下一页 next
next.vue:32 hello test--next

可以发现都没有index.vue什么事了

2021-04-29 20:02 负责人:无 分享
已邀请:

要回复问题请先登录注册