VK1688
VK1688
  • 发布:2022-05-20 09:35
  • 更新:2022-05-20 22:39
  • 阅读:509

【报Bug】HBX3.4.7 vue3 h5 当整个项目只有1个首页时,在首页跳首页会报错!

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.4.7

浏览器平台: Chrome

浏览器版本: 94.0.4606.61

项目创建方式: HBuilderX

示例代码:
<template>  
    <view>  
        <button @click="navigateTo">跳自身页面navigateTo</button>  
        <button @click="redirectTo">跳自身页面redirectTo</button>  
        <button @click="reLaunch">跳自身页面reLaunch</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                title: 'Hello'  
            }  
        },  
        onLoad() {  

        },  
        methods: {  
            navigateTo(){  
                let random = Math.random();  
                uni.navigateTo({  
                    url:`/pages/index/index?random=${random}`  
                })  
            },  
            redirectTo(){  
                let random = Math.random();  
                uni.redirectTo({  
                    url:`/pages/index/index?random=${random}`  
                })  
            },  
            reLaunch(){  
                let random = Math.random();  
                uni.reLaunch({  
                    url:`/pages/index/index?random=${random}`  
                })  
            }  
        }  
    }  
</script>  

<style>  

</style>  

操作步骤:

直接hbx新建uniapp空白项目,选vue3模式,整个项目只写1个首页页面,页面代码为 上面的代码示例,运行h5到浏览器

预期结果:

3种方式的跳转应该能正常跳转页面才对

实际结果:

无法跳转页面,会报错。

TypeError: Cannot read properties of undefined (reading 'push')
TypeError: Cannot read properties of undefined (reading 'replace')

bug描述:

当整个项目只有1个首页时,在首页跳首页会报错!

2022-05-20 09:35 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

为了优化包体积大小,当项目只有一个页面时,会认为该项目不需要路由管理,所以无法调用uni的路由API
如果确认只需要一个页面,且还需要uni的路由跳转,临时方案,可以再新建一个空页面,后续会优化此逻辑

  • VK1688 (作者)

    好的,不过当项目只有一个页面时,就算加载路由管理,包体积也加不了多少,所以我感觉没有必要去掉路由管理的API ,毕竟2个或以上页面时,路由API就会加载,因此没有必要单独为1个页面时,去掉路由管理。

    因为1个页面时,也可能会页面跳自身页面的情况(为了让url变化)如果采用执行函数的方式修改页面内容,url不会变化,导致将页面url发给别人后,别人打开的和你本意想给客户看的url是不一致的。

    2022-05-21 15:15

该问题目前已经被锁定, 无法添加新回复