uni-app getSubNVueById 报错

uni-app getSubNVueById 报错

开发环境 版本号 项目创建方式
Windows 10 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

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

HBuilderX类型:正式

HBuilderX版本号:4.15

手机系统:iOS

手机系统版本号:iOS 15

手机厂商:苹果

手机机型:IPone 12 mini

页面类型:nvue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

### 示例代码:
```json
{
    "globalStyle": {
        "navigationBarTextStyle": "white",
        "navigationBarTitleText": "",
        "navigationStyle": "custom",
        "enablePullDownRefresh": false,
        "navigationBarBackgroundColor": "#87C349",
        "backgroundColor": "#ffffff",
        "titleNView":false,
        "app-plus": {
            "bounce": "none" ,
            "safearea": {
                "bottom": "none"
            },
            "subNVues":[{
                "id":"popup",
                "path": "pages/popup/popup.nvue", // nvue 路径
                "style": { //webview style 子集,文档可暂时开放出来位置,大小相关配置
                    "position": "popup", //除 popup 外,其他值域参考 5+ webview position 文档
                    "margin":"auto",
                    "width": "0",
                    "height": "0"
                    // "background": "transparent"
                }
            }]  
        }
    }  
}
var subNVue = uni.getSubNVueById('popup');
subNVue.show('fade-in',200,()=>{
console.log(456)
subNVue.setStyle({
"position": "absolute", //除 popup 外,其他值域参考 5+ webview position 文档
"width": "100vw",
"height": "100vh",
"background": "transparent"
})
})

操作步骤:

配置完,打开app调用api

预期结果:

窗口显示

实际结果:

报错

bug描述:

uni.getSubNVueById(‘popup’) 报错


更多关于uni-app getSubNVueById 报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

4.45版本也会这样

更多关于uni-app getSubNVueById 报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据您提供的信息,uni.getSubNVueById(‘popup’)报错可能有以下几个原因:

  1. 页面加载时机问题:确保在页面onReady生命周期后再调用getSubNVueById方法。NVue页面需要完全加载后才能获取子窗口。

  2. 路径配置问题:检查pages/popup/popup.nvue文件路径是否正确,确保文件存在且路径拼写无误。

  3. 作用域问题:确认调用getSubNVueById的页面与配置subNVues的页面是同一个页面。subNVue配置是页面级的,只能在当前页面获取。

  4. 样式配置问题:初始width和height设置为0可能导致问题,建议改为具体数值或百分比。

  5. 版本兼容性:HBuilderX 4.15版本可能存在已知问题,建议升级到最新稳定版再测试。

建议修改代码:

onReady() {
    this.$nextTick(() => {
        try {
            const subNVue = uni.getSubNVueById('popup');
            subNVue.show('fade-in', 200, () => {
                subNVue.setStyle({
                    width: '100%',
                    height: '100%',
                    background: 'transparent'
                });
            });
        } catch(e) {
            console.error('获取subNVue失败:', e);
        }
    });
}
回到顶部