我正在尝试编写一个函数,以将某些转换动态应用于角度材料主题的预先定义的颜色映射。问题在于,以某种方式从函数中得出的结果是wrong。
我已经通过调试日志打印了结果,它看起来与原始贴图完全一样,但是通过键进行比较失败,如果尝试将其提供给角形材料函数,则会导致错误。
这里是问题的简化说明-您可以看到
$eenie
和$meenie
是等效的$miney
和$mo
)也相等我需要在函数内部完成的工作是,使$eenie
在通过$miney
后等于map_merge
我怀疑也许是因为密钥看起来是一个数字,所以它正面临某种数据类型危机,但是我对SASS的了解不足,无法弄清情况是否正确或如何解决。我尝试使用引号,但是对于角形材质函数,这似乎不是可接受的输入,因此我需要它与$eenie
完全匹配。
@function merge-things($base-palette){
$result: ();
@each $hue, $color in $base-palette {
$result: map_merge($result, (#{$hue}: $color));
}
@return $result;
}
$eenie: (
50: green,
contrast: (
50: white,
),
);
$meenie: (
50: green,
contrast: (
50: white,
),
);
$miney: merge-things($eenie);
$mo: merge-things($miney);
@debug $eenie; // DEBUG: (50: green, contrast: (50: white))
@debug $meenie; // DEBUG: (50: green, contrast: (50: white))
@debug $miney; // DEBUG: (50: green, contrast: (50: white))
@debug $mo; // DEBUG: (50: green, contrast: (50: white))
@debug 'eenie-meenie #{map-keys($eenie) == map-keys($meenie)}'; // DEBUG: eenie-meenie true
@debug 'eenie-miney #{map-keys($eenie) == map-keys($miney)}'; // DEBUG: eenie-miney false
@debug 'miney-mo #{map-keys($miney) == map-keys($mo)}'; // DEBUG: miney-mo true
我正在尝试编写一个函数,以将某些转换动态应用于角度材料主题的预先定义的颜色映射。问题是从...
merge-things
功能在使用数字中的键进行插值时更改键的类型。