手写笔将迭代变量传递给 mixin 参数

Stylus passing iteration variables to mixin argument

我正在为将循环变量设置为混入而苦苦挣扎。

for num in (1..3)
  &.item{num}
    sprite($sprite-item{num})

它不起作用。第 3 行发生错误,将 "num" 赋给 sprite() mixin。

下面编译成功,但没有按预期工作,因为给定的参数是字符串,而不是变量。 for循环迭代中如何配置动态变量???

for num in (1..3)
  &.item{num}
    sprite('$sprite-item' + num)

如果没有循环函数,代码将是

&.item1
    sprite($sprite-item1)
&.item2
    sprite($sprite-item2)
&.item3
    sprite($sprite-item3)

提前感谢您的宝贵时间!

我在查看代码时(在解决您的问题之前)的第一个假设是,通常在处理列表或数组时,第一项将位于位置 0 ...等等。因此,与其说 1-3,我认为应该是 0-2。尝试:

for num in (0..2)
    &.item{num}
        sprite($sprite-item{num})

这只是一个有根据的猜测,因为我没有足够的信息来真正了解一下。

Stylus 不支持变量插值,但您可以使用 lookup bif 来完成此任务。例如:

for num in (1..3)
  &.item{num}
    sprite(lookup('$sprite-item' + num))