4***@qq.com
4***@qq.com
  • 发布:2019-03-19 22:36
  • 更新:2020-08-16 20:44
  • 阅读:4015

nvue没有onShow生命周期,怎么实现夜间模式呢?

分类:nvue

场景:
譬如uni-app的新闻模板,用户在详情页(vue)或者tabBar我的页(vue)开启夜间模式,然后使用uni.getStorage()把状态放到缓存。

预期效果:
返回主页(nvue)时,把状态读出来,修改样式。

nvue好像没有合适的生命周期去做这件事,仅有的几个生命周期好像都完成不了这样的操作。

2019-03-19 22:36 负责人:无 分享
已邀请:
Boogie

Boogie

可以用通讯的方式,改变状态时从vue页面传递到nvue,在nvue使用globalEvent监听
https://uniapp.dcloud.io/use-weex?id=vue-%e5%90%91-nvue-%e9%80%9a%e8%ae%af

4***@qq.com

4***@qq.com (作者)

我尝试运行官网例子vue向nvue通讯,但是执行不了。

nvue

  1. const globalEvent = weex.requireModule('globalEvent');

  2. created生命里面照搬例子里的代码

    globalEvent.addEventListener("plusMessage", e => {    
      console.log(e.data);    
      if (e.data.num) {     
           console.log(e.data.num);    
      }    
    });  

vue
绑定了一个点击事件,执行下面的代码

var pages = getCurrentPages();    
var page = pages[pages.length - 1];    
var currentWebview = page.$getAppWebview();    

plus.webview.postMessageToUniNView({    
     num: '111'    
}, currentWebview.id);    

但是好奇怪哦,根本执行不起来。虽然控制台有打印,但是时间不对,是在我从nvue跳转到vue页面的时候打印的。vue发生了点击事件以后,并没有打印。

aHzak

aHzak

请问一下你后来是如何解决这个问题的? 我也掉进这个坑里了

猫猫儿

猫猫儿 - 猫猫儿

uni.$emit()

该问题目前已经被锁定, 无法添加新回复