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 回复
根据您提供的信息,uni.getSubNVueById(‘popup’)报错可能有以下几个原因:
-
页面加载时机问题:确保在页面onReady生命周期后再调用getSubNVueById方法。NVue页面需要完全加载后才能获取子窗口。
-
路径配置问题:检查pages/popup/popup.nvue文件路径是否正确,确保文件存在且路径拼写无误。
-
作用域问题:确认调用getSubNVueById的页面与配置subNVues的页面是同一个页面。subNVue配置是页面级的,只能在当前页面获取。
-
样式配置问题:初始width和height设置为0可能导致问题,建议改为具体数值或百分比。
-
版本兼容性: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);
}
});
}