问题:map.get()
不起作用。 map-get()
确实有效。
我设置了一个颜色值图并创建了一个简单的函数来检索它们。
在进行检索时,我按照 Sass documentation这表明您可以使用 map.get()
检索 map 值功能。使用这个或任何其他 map.function
导致 Error: There is no module with the namespace "map".
.
查看 map 模块,我注意到另一种语法 map-get()
,这确实有效。
是什么赋予了?我是否遗漏了一些东西,比如导入 map 模块,以便我可以以那种形式使用它?
在下面查看我的代码:
// 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()
语法工作?
最佳答案
我遇到了与 OP 类似的问题(使用 dart-sass v1.25.0),并且只有 map-get
作品, map.get
没有。
文档似乎对此不太清楚,但 Github 上的 (Sass Module System: Draft 6) 文档解释得更好。
好像是 Sass is moving on使用 @use
赞成@import
为了更好地兼容原生 CSS,并且为了访问 map.get
您现在必须显式导入 map module
使用 @use
关键词。
所以使用 OP 的例子,map.get
应该管用:
@use "sass:map";
$colors: ('primary': black, 'secondary': white);
@function color($color) {
@return map.get($colors, $color);
}
关于function - Sass map.get() 不起作用。 map-get() 可以。是什么赋予了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64210390/