收藏
回答

wx:for

page中定义starNum = 2;


这样写,只会打印一个图片

<block wx:for="{{starNum}}">

    <image src='https://fangmaster-pic.oss-cn-beijing.aliyuncs.com/small_program/grade-star.png' mode="widthFix"></image>

</block>


<block wx:for="2">

    <image src='https://fangmaster-pic.oss-cn-beijing.aliyuncs.com/small_program/grade-star.png' mode="widthFix"></image>

</block>





这样写,会打印两个图片

<block wx:for="{{2}}">

    <image src='https://fangmaster-pic.oss-cn-beijing.aliyuncs.com/small_program/grade-star.png' mode="widthFix"></image>

</block>


<block wx:if="{{starNum > 0}}" wx:for="{{[1,2]}}">

    <image src='https://fangmaster-pic.oss-cn-beijing.aliyuncs.com/small_program/grade-star.png' mode="widthFix"></image>

</block>


这样写,会打印三个图片

<block wx:if="{{starNum > 0}}" wx:for="[1,2]">

    <image src='https://fangmaster-pic.oss-cn-beijing.aliyuncs.com/small_program/grade-star.png' mode="widthFix"></image>

</block>




为什么会出现这种情况呢?完全搞不懂逻辑


我想实现

<block wx:for="{{starNum}}">

    <image src='https://fangmaster-pic.oss-cn-beijing.aliyuncs.com/small_program/grade-star.png' mode="widthFix"></image>

</block>

能够打印2个图片,该怎么做?


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

5 个回答

  • Ranbol
    Ranbol
    2018-09-21

    page里面的 starNum 类型写成string了吧,应该是number

    2018-09-21
    赞同 1
    回复 1
    • 刘振振
      刘振振
      2018-09-21

      谢啦

      2018-09-21
      回复
  • 马农™
    马农™
    2018-10-25

    微信小程序文档里有说明:

    当 wx:for 的值为字符串时,会将字符串解析成字符串数组


    https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/list.html

    直接写 wx:for="2" ,不管是什么内容,实际都是作为字符串处理的,而wx:for="{{x}}",如果x是有效变量则按变量值处理,如果x是数组则按数组处理,其它情况按字符串遍历。

    2018-10-25
    赞同
    回复
  • 刘振振
    刘振振
    2018-09-21

    嗯嗯   从别的page中传过来的,默认string了

    2018-09-21
    赞同
    回复
  • zhcode
    zhcode
    2018-09-21

    为什么我把starNum直接定为2,可以正常显示两个



    2018-09-21
    赞同
    回复
  • 这都申请了
    这都申请了
    2018-09-21

    在js生成一个数组然后再渲染不就好了

    2018-09-21
    赞同
    回复