收藏
回答

picker-view 属性不能动态设置

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug picker-view 客户端 6.7.2 2.3.2

如代码片段所示。


我猜测是因为如下代码:


希望官方能够增加observer方法来检测新的样式并更新即可。


代码片段中的pickerView.js 摘选了对于定义picker-view的部分代码。

代码扒自1.9.90基础库,仅本人用作学习研究之用。






赠送:

官方picker-view-mask的遮罩样式

.wx-picker__mask {

    top: 0;

    height: 100%;

    margin: 0 auto;

    background: linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.6)),linear-gradient(0deg,rgba(255,255,255,.95),rgba(255,255,255,.6));

    background-position: top,bottom;

    background-size: 100% 102px;

    background-repeat: no-repeat

}



最后一次编辑于  2018-11-07  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 凌云摘星傲苍穹
    凌云摘星傲苍穹
    2018-11-08

    这里目前设计上就是不能动态更改的,这个现象符合预期。我们后续会考虑改进,感谢反馈~

    2018-11-08
    赞同
    回复 1
    • 烧饼
      烧饼
      2018-11-08

      谢谢哦~看了下官方的组件库,应该也就只有这个组件的这些属性不能自动数据绑定,希望官方统一 一下~

      2018-11-08
      回复
  • 卢霄霄
    卢霄霄
    2018-11-07

    observer的值,是个函数,不是字符串呢

    2018-11-07
    赞同
    回复 4
    • 烧饼
      烧饼
      2018-11-08

      谢谢卢霄霄大大。我看了下官方对于picker-view的实现,properties传递的样式并不是直接数据绑定在视图上的,而是通过_initColumns来初始化并设置在视图上的。所以当我想通过picker-view的properties的数据绑定来更改样式的时候,并没有生效,我觉得这里需要一个observer来更新视图的样式。

      2018-11-08
      回复
    • 卢霄霄
      卢霄霄
      2018-11-08回复烧饼

      不好意思哈。。没看你片段就瞎BB了。。。

      仔细看了下你的截图,也许官方在 _updateColumns里增加设置就行了

      你这个代码哪里来的啊。。

      2018-11-08
      回复
    • 烧饼
      烧饼
      2018-11-08回复卢霄霄

      哈哈,以前旧版本开发者工具目录下面就有一些基础库版本目录,里面有一大堆js文件。一开始就研究CSS怎么改写,后来遇到不通的地方诸如这里的picker-view就大概看一看怎么回事

      2018-11-08
      回复
    • 卢霄霄
      卢霄霄
      2018-11-08回复烧饼

      真是有意思啊~

      好奇怪。。一部分混淆过了。。一部分居然没混淆掉。。我看现在的基础库,基本都混淆压缩过了哎

      2018-11-08
      回复