问题:map.get()
不起作用。map-get()
确实能工作。
我设置了一个颜色值的映射,并创建了一个简单的函数来检索它们。
在进行检索时,我遵循了Sass文件,其中声明您可以使用map.get()
函数检索映射值。使用此或任何其他map.function
将生成一个Error: There is no module with the namespace "map".
。
在查看映射模块时,我注意到了另一种语法map-get()
,它可以工作。
怎么回事?我是不是遗漏了一些东西,比如导入映射模块,以便以这种形式使用它?
查看我的代码如下:
// Using npm dart `sass 1.26.11`.
$colors: ('primary': black, 'secondary': white);
// Doesn't work
@function color($color) {
@return map.get($colors, $color);
}
// Does work
@function color($color) {
@return map-get($colors, $color);
}
问:要使map.get()
语法正常工作,我需要更改什么?
发布于 2020-10-16 17:02:22
我有一个与OP类似的问题(使用dart-sass v1.25.0),只有map-get
工作,map.get
不工作。
文档在这一点上似乎不太清楚,但是关于Github的(Sass模块系统:草案6)文档解释得更好了。
为了更好地与本机CSS兼容,使用Sass继续前进似乎使用了@use
,为了获得对map.get
的访问,您现在必须使用@use
关键字显式导入map module
。
因此,使用OP的例子,map.get
应该可以工作:
@use "sass:map";
$colors: ('primary': black, 'secondary': white);
@function color($color) {
@return map.get($colors, $color);
}
https://stackoverflow.com/questions/64210390
复制相似问题