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 个评论
要回复文章请先登录或注册