使用uniapp做开发,时不时会遇到困难。遇到困难时,可以在Dcloud社区和QQ群提问。但Dcloud官方分配于解答开发者疑问的力量远远不足,大多数提问根本不会得到任何回复。我是个暴脾气,很多时候气得捶足顿胸。但那又怎样呢,不回复就是不回复。
以前,我对这个问题只会抱怨。后来,我想通了:自己对社区并没有太多贡献,凭什么社区无偿为你解答问题?如果每个人都愿意花一点时间,主动在社区发布一些经验分享,或者回复一些他人遇到而自己已有解决方案的问题,那么社区的质量就会提升,下次遇到问题时,在社区搜索答案就更容易命中有效答案了。
所以,从现在开始,以后但凡有些许有价值的经验总结,哪怕价值很小很小,我都会发布到社区。虽然个人的能力非常有限,解决不了很大的问题,只能从小处着手,但兴许对未来的某一个人有用呢?
以下是正文
用subNVue做popup是非常完美的方案。美中不足的是,uniapp的subNVue并未提供show和hide事件,以至用subNVue做的popup,无法进行有效的初始化。
这里提供一个监听subNVue(或popup)的show和hide事件的办法。
具体做法
在subNVue页面的js代码中,在onLoad方法(uni-app编译模式适用。如果是week编译模式,可改为beforeCreate方法)内添加如下js代码:
uni.getCurrentSubNVue().addEventListener("show", function() {
console.log("subNVue子窗体已显示!")
});
uni.getCurrentSubNVue().addEventListener("hide", function() {
console.log("subNVue子窗体已隐藏!")
});
完美解决!