我有以下较少的mixin:
@myColor = #123456;
.mixin(@a) when (@a = @myColor){
// do something
}
然而,这会抛出此错误:无法执行比较
为什么?
答案 0 :(得分:2)
看起来(从lesscss 1.2.2开始),警卫只支持比较尺寸和关键字。 (搜索“比较:”的来源)所以,遗憾的是,比较两种颜色或字符串是行不通的。
答案 1 :(得分:0)
更新:四个想法(同样,我没有LESS本身的经验,我只是看文档)。
您传递给mixin(@a
)的变量是否为十六进制格式的颜色?也许它无法进行比较,因为您传递的是另一种变量类型。
为了确定,您是否仔细检查过你是否调用了正确的变量(@myColor
)而不是@mycolor
)。
您是否尝试将when
转换为(@myColor = @a)
,看看是否有效。在http://lesscss.org/处的一个示例中,他们使用未在mixin中定义的变量(他们使用@media
),这是他们所拥有的顺序。
最后,我的第一个原始答案是尝试:
.mixin(@a, @b: @myColor) when (@a = @b){ // do something }
答案 2 :(得分:0)
只需将less.js更新到最后一个版本(1.2.2 - 当前版本)即可。
我遇到了同样的问题。现在它为我修复了(我的问题代码示例:Lesscss Mixins with guards. Syntax Error)。 我认为,这将是固定的,并以你的例子。