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个图片,该怎么做?
微信小程序文档里有说明:
当
wx:for
的值为字符串时,会将字符串解析成字符串数组
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/list.html
直接写 wx:for=“2” ,不管是什么内容,实际都是作为字符串处理的,而wx:for="{{x}}",如果x是有效变量则按变量值处理,如果x是数组则按数组处理,其它情况按字符串遍历。