收藏
回答

icon的属性中不能使用三元运算符吗


数据属性设置如下:


wxml中代码如下:
当把usr.ok设置为true也不会显示icon。

但是如果在函数中使用this.setData就会正常显示。很奇怪,不知道为什么。

以上都是在1.01.171018的上一个版本编辑器里面发现的

回答关注问题邀请回答
收藏

7 个回答

  • 最咸的咸鱼
    最咸的咸鱼
    2017-10-19

    0.0.0


    2017-10-19
    有用
    回复
  • 阿默
    阿默
    2017-10-18

    不行。我说一下的我理解,不知道对不对。

    这张图里面的send initial data是将page中的data发送过去(我个人理解的,不知道是不是准确),然后view线程进行第一次渲染。按理说在onload中初始化data,应该能被第一次渲染。但是出现这个bug不知道为什么

    2017-10-18
    有用
    回复
  • 最咸的咸鱼
    最咸的咸鱼
    2017-10-18

    我只知道image的src有这个BUG;刚开始渲染页面的时候渲染到image标签 里面是空值会报错, type 这个还没有试过!!

    2017-10-18
    有用
    回复
  • 最咸的咸鱼
    最咸的咸鱼
    2017-10-18

    那你就在type 前面写一个 wx:if<icon wx:if="{{usr.ok}}" type='{{usr.ok?usr.succIcon:usr.warnIcon}}' color='{{usr.ok?usr.succCol:usr.warnCol}}'></icon> 试试!

    2017-10-18
    有用
    回复
  • 阿默
    阿默
    2017-10-18

    demo如下:

    wxml文件:

    <icon type='{{usr.ok?usr.succIcon:usr.warnIcon}}' color='{{usr.ok?usr.succCol:usr.warnCol}}'></icon>

    js代码有两个文件:

    第一个:pppp.js

    function test(){
    }
    test.prototype={
      constructor:test,
      ok: true,
      succIcon: 'success',
      warnIcon: 'warn',
      succCol: 'green',
      warnCol: 'red'
    }
     
    module.exports=test

    第二个:index.js

    var test=require('pppp.js')
    var app = getApp()
    Page({
      data: {
      },
      onLoad: function () {
        this.setData({
          usr: new test()
        })
        console.log(this.data)
        }
    })

    这样就会出现上述问题。

    2楼的方法我试过了,不行。也不知道为什么那个截图会是那样,后来的截图是这样的
    我这样写出现问题的原因是不是在onload时期更改了数据,而这个时候view已经初始化好了(生命周期没掌握好)?

    2017-10-18
    有用
    回复
  • 最咸的咸鱼
    最咸的咸鱼
    2017-10-18

    usr.ok==true?usr.successicon.icon:usr.warnicon.icon试试!还有你两个icon的值都是success!

    2017-10-18
    有用
    回复
  • HS
    HS
    2017-10-18

    是否有示例代码呢。

    2017-10-18
    有用
    回复
登录 后发表内容