r***@163.com
r***@163.com
  • 发布:2022-03-03 10:00
  • 更新:2022-03-03 10:00
  • 阅读:797

subNvue踩坑奇遇记(一)

分类:nvue

1、对subNVue子窗体的样式修改,要放在subNVue.show接口的回调函数中,注意此时的this已经不在上下文,需要在调用show接口前const self = this;重新指向,才能使用窗口的接口

const subNVue = uni.getSubNVueById('selector')  
                const self = this  
                subNVue.show('slide-in-right', 300, function(){  
                    const statusBarHeight = `${uni.getSystemInfoSync().statusBarHeight}px`  
                    const height = `${(uni.getSystemInfoSync().screenHeight  - uni.getSystemInfoSync().statusBarHeight)}px`  
                    subNVue.setStyle({  
                        top: statusBarHeight,   
                        height: height  
                    })  
                });

2、在主窗口向subNVue子窗体发起消息时,要加延时才会触发,即使放在show()接口的回调中,也需要加延时,调试了很久子窗口都无法监听到事件,后来加了延时就可以了(非常痛苦,在uniapp框架下,如果发现一些代码没有效果,都要尝试一下增加延时)

setTimeout(() => {  
                        uni.$emit('selector-init', {  
                            title: self.$t('kkkk‘)  
                        })  
                    }, 200)

3、在子窗体上要注意,nvue是不支持vuex的,从nvue调用的外部js函数,该js函数中也是无法读取vuex的,如果有vue和nvue的共享变量,需要放到storage里面或者其他可以共享的方式

4、阶段性总结一下,非必要情况下,还是不要用subNvue了,样式支持有限、各种奇怪问题、不支持vuex等等,最主要是样式的调试非常不方便,目前我还没找到像webview模式一样方便的调试方法。有知道样式调试方法的,还希望不吝赐教。说到调试,补充一句,subNVue的官方文档实在是太少了。

0 关注 分享

要回复文章请先登录注册