wx:for
发布于 7 年前 作者 zgu 4966 次浏览 来自 问答

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个图片,该怎么做?

5 回复

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

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

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

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

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

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

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

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

回到顶部