收藏
回答

以下代码为何不能赋值给 outcolori?

已验证i=7, 控制台已经成功打印了以下要打印的,但是outcolor1一直到outcolori却没有值?为何?哪里写错了?

onClickL2Out(res) {

    console.log("layer2", res)

    for (var i = 1; i <= this.data.outarray.length; i++{

      if (res.target.id == "out" + i{

        console.log("i", i)

        console.log("outcolor" + i)

        this.setData({

          outcolori: bacgrocolor

        })

      } else {

        this.setData({

          outcolori: ""

        })

      }    

      console.log("outcolori",this.data.outcolor1,this.data.outcolor2,bacgrocolor)

    }

控制台打印:



<view class="layer2boxwx:if="{{isShowOut}}bindtap="onClickL2Out" >

  <view class="layer2stylestyle="background-color:{{'outcolor'+(index+1)}}wx:for="{{outarray}}wx:key="*this">

    <view id="out{{index+1}}">{{index+1}}_{{item}}view>

    <icon id="outicon{{index+1}}type="successsize="20rpxcolor="{{iconcolor}}">icon>

  view>

view>

此时,outcolor1 = #AFEEEE, 但是WXML没有渲染? 如果渲染的话,1_外形就应该显示具体的底色#AFEEEE,但是结果却没有。为何?




最后一次编辑于  2020-08-07
回答关注问题邀请回答
收藏

1 个回答

  • 俞哄哄💻📷🤘🚴🎧
    俞哄哄💻📷🤘🚴🎧
    2020-08-07

    没理解你的问题你这边的赋值都是outcolori 你打印的outcolor1这些在你的代码片段中没有出现赋值

    2020-08-07
    有用 2
    回复 14
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-08-07
      可以看我前一个问题就知道全貌逻辑了
      2020-08-07
      回复
    • 俞哄哄💻📷🤘🚴🎧
      俞哄哄💻📷🤘🚴🎧
      2020-08-07回复Jason_亮 🇨🇳
      你赋值的是"outcolori",你却在打印outcolor123这些
      2020-08-07
      回复
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-08-07回复俞哄哄💻📷🤘🚴🎧
      i参与了for 循环,只有一次true的时候执行。比如i=1的时候我让其执行,赋值语句怎么写?"outcolor"+1 = bacgrocolor,但是报错啊
      2020-08-07
      回复
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-08-07回复俞哄哄💻📷🤘🚴🎧
      简而言之,就是for循环给其中一个符合条件的情况中,给一个变量赋值,但是变量是个含有i的字符串,可以是outcolor1, outcolor2等等,由于在循环for 内不知道i 为多少的时候才进行赋值,所以写成了outcolori: bacgrocolor的形式,bacgrocolor是常量。 for循环是执行了,赋值运算的确也执行了一次,这里i 是通过点击确认i = 多少的,目前i 的值的范围是1-7.
      2020-08-07
      回复
    • 俞哄哄💻📷🤘🚴🎧
      俞哄哄💻📷🤘🚴🎧
      2020-08-07回复Jason_亮 🇨🇳
      建议还是熟悉下js模板字符串
      2020-08-07
      回复
    查看更多(9)
登录 后发表内容
问题标签