使用 leftwindow 时,引用组件会导致报错 uni is not defined uni-app

使用 leftwindow 时,引用组件会导致报错 uni is not defined uni-app

示例代码:

见附件

操作步骤:

<template>  
    <view>  
        <comicDetail ref="comicPage"></comicDetail>  
    </view>  
</template>  

<script>  
    import comicDetail from '../pages/comic/comic.vue';  
    export default {  
        components:{  
            comicDetail  
        },  
        data() {  
            return {  
                title: 'Hello'  
            }  
        },  
        created(e) {  
            //打开漫画详情  
            uni.$on('updateComicDetail', (e) => {  
                // 执行 /pages/news/detail.nvue页面的load方法  
                this.$refs.comicPage.load(e.detail);  
            })  
        }  
    }  
</script>  

<style>  
</style>  

预期结果:

正常运行

实际结果:

白屏

image

main.zip

bug描述:

使用leftwindow时候,leftwindow.vue中,先引用内容页面,在内容页面引用uni_modules中的组件
会导致白屏,报错uni is not defined


更多关于使用 leftwindow 时,引用组件会导致报错 uni is not defined uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html

32 回复

bug处理完了吗? 有需求把项目变成pc端

更多关于使用 leftwindow 时,引用组件会导致报错 uni is not defined uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html


去年的就确认的bug,现在还没修复,真牛逼

2023年底了居然还没修好,真是无语极了,又不是什么很难的bug,你好歹给个自己手动引用uni的方式也行

确认bug, 处理中

啥时候能处理完呢,现在最新版还是有这个问题,leftwindow不能用

啥时候能处理完呢,使用uView2.0,leftwindow不能用

都20203年中旬了, 还没改好吗

回复 7***@qq.com: 24年了,还是没处理好

25年了也没修复好

大概哪个版本能解决呢?

uview 插件的组件同样报这个错误

同用uview,最新版仍然有这个问题

看这样子 估计没多少人用这个开发pc端页面

这个还没解决吗?

问题还没解决吗

同遇到这个问题,请及时修复,或者告知一下怎么规避这个问题?

打卡, 3.7.12.20230331-alpha 仍未修复

rightWindow, leftWindow, topWindow都有问题, 就算pc用不了, 其他大屏手机, 比如iPad和折叠屏总是需要做适配的吧, 这要啥时候才能修复好呀

还没修复好吗?今天刚好碰到,这个bug是真的旧

天哪,这效率太慢了吧,都多久没还修复!rightWindow, leftWindow, topWindow都有这个问题

啥时候修复啊?,在rightWindow, leftWindow, topWindow中无法使用uview组件,他们用到了uni

同上,求解决办法

uview组件的import props from ‘./props.js’; 里面的uni.$u.props.badge.value,影响的么?要怎么解决?

产品分类: uniapp/H5
PC开发环境操作系统: Windows PC开发环境操作系统版本号: win11 HBuilderX类型: 正式 HBuilderX版本号: 4.15 浏览器平台: Chrome 浏览器版本: 96.0.4664.110(正式版本) 项目创建方式: HBuilderX

找到原因了。leftwindow和topwindow 不能用uview组件,你看看是不是用了。

2025年了,还没有修复好

2026年了还没修复

在 leftwindow 中使用 uni_modules 组件时出现 “uni is not defined” 错误,是因为 leftwindow 的加载时机问题。leftwindow 在应用启动时较早初始化,此时 uni 对象可能还未完全挂载到全局。

解决方案:

  1. 延迟组件加载:将 uni_modules 组件的引用放在条件渲染中
<template>
    <view>
        <comicDetail v-if="mounted" ref="comicPage"></comicDetail>
    </view>
</template>

<script>
export default {
    data() {
        return {
            mounted: false
        }
    },
    mounted() {
        this.mounted = true;
    }
}
</script>
  1. 使用动态导入:异步加载组件
export default {
    components: {
        comicDetail: () => import('../pages/comic/comic.vue')
    }
}
回到顶部