带有逗号的Sass变量不适用于映射移除方法

带有逗号的Sass变量不适用于映射移除方法,sass,Sass,我想从sass映射中删除多键,代码如下 $breakpoint: ( xs: ( min-width: 0 ), sm: ( min-width: 481 ), md: ( min-width: 768 ) ) !default; $breakpoint-remove: xs, sm !default; // i need remove xs and sm key @mixin test($map: $breakpoint) { $map:

我想从sass映射中删除多键,代码如下

$breakpoint: (
  xs: (
    min-width: 0
  ),
  sm: (
    min-width: 481
  ),
  md: (
    min-width: 768
  )
) !default;

$breakpoint-remove: xs, sm !default; // i need remove xs and sm key

@mixin test($map: $breakpoint) {
  $map: map-remove($map, $breakpoint-remove); // not working

  justForOutput:  $map; // not working
}

@include test();
如果变量
$breakpoint remove
具有带逗号的多值,则它不起作用,但对单个值起作用


如何使其工作?谢谢。

映射删除
可以删除多个键,但它们必须作为单个参数传递,而不是作为列表传递:

map-remove($map-breakpoints, xs, sm)
在这种情况下(注意括号和
):

如前所述,
告诉编译器填写列表,就像它被这样调用一样:

$map: map-remove($map, xs, sm);

编辑:重写以包含重复帖子中的相关信息

,因此,既然问题已作为副本关闭,您是否可以将答案更改为复制原始问题中已接受的答案?这不酷。@cimmanon我不认为这是一个重复的问题,我的答案也不是另一个的重复。我的回答确实使用了对方的信息来回答这个问题。我编辑了我的答案,因为它不正确,没有回答OP的问题。所以让我直说吧,你原本认为这个问题是OP现有问题的重复,但还是发布了一个答案(你本来不应该这样做,你应该标记它)。你的回答结果是错的。我将问题作为副本关闭,因此您阅读原始问题的答案并将其复制到您的答案中。你怎么认为这个问题不是重复的?
$map: map-remove($map, xs, sm);