问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 微信小程序 Bug wx.setBackgroundColor 客户端 6.7.3 2.3.1
无论是首次进入微信小程序,还是从其他页面跳转至目标页触发的onShow中,调用wx.setBackgroundColor设置backgroundColorTop都有大概率无效,也不会触发wx.setBackgroundColor的fail回调。
例外的是,如果先将微信切至后台,再切至前台,导致页面触发onShow,就不存在这种问题。
经过测试:
在onShow中console.log()表明该生命周期是始终触发的,所以是wx.setBackgroundColor方法的问题。
使用setTimeout延迟调用wx.setBackgroundColor不能解决。
同样的时机,调用wx.setNavigationBarTitle或wx.setNavigationBarColor并没有问题。
看图,注意下拉刷新时的backgroundColorTop
(这里演示的是微信切至后台,再切至前台触发onShow,wx.setBackgroundColor才生效,此图中的导航栏颜色和标题都是在onShow时调用相应方法设置的,唯独wx.setBackgroundColor无效)
ps: 我知道可以在json里设置,但需求是这些颜色是可以动态设置的,所以需要使用wx.setBackgroundColor
代码片段
https://developers.weixin.qq.com/s/fKLKWomP7b3E
微信小程序开发问题解答
微信小程序开发者回答:
试了下加setTimeout后可以了,应该是设置的时候页面还没有渲染好导致的
微信小程序开发者回答:
好吧,延迟200ms是解决了 - - 之前测试的100ms没用
微信小程序开发者回答:
我也遇到了这样的问题,,,设置backgroundColorTop不生效,backgroundColorBottom是生效的
微信小程序开发者回答:
麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
微信小程序开发者回答:
https://developers.weixin.qq.com/s/fKLKWomP7b3E
本文网址:http://www.91bianli.com/kaifazhinan/76524.html