Как получить вложенное значение из ключа внутри цикла @each в SCSS Map - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь получить доступ к определенному значению из ключа внутри ключа в цикле @each из карты SCSS.

Мне нужно иметь две позиции слева на карте: одну для настольного компьютера, а другую для мобильного, но у меня возникают трудности с получением значений слева.Я не уверен, как это сделать.

У меня есть функция map-deep-get , однако внутри цикла @each она обрывается.Возможно ли то, что я пытаюсь сделать без другой функции?

У меня есть несколько закомментированных попыток ниже, но все ломается.Не совсем уверен, как подойти, спасибо за любую помощь, вы можете дать.

$character-map: (
  billy: (
    name: 'billy',
    color: $colour-light-blue,
    left: (-1px, -2px),
  )
);

@each $key, $value in $character-map {
    &.dialogue-item-#{map-get($value, name)},
    &.guide-item-#{map-get($value, name)} {
        .character-head {
            background: lighten(map-get($value, color), 18%);
            border-color: map-get($value, color);

            // Actual Characters Head
            img {
               @include media-breakpoint-up(sm) {
                //left: map-get(($value, left), nth($value, 1));
                //left: map-get($value, nth(left, 1));
              }
            }
          }
        }
    }

1 Ответ

0 голосов
/ 02 октября 2018

Я понял это с большим количеством экспериментов, возможно, это поможет кому-то, кто смотрит.

если вы немного измените карту, вы можете сделать это.

$character-map: (
  billy: (
    name: 'billy',
    color: $colour-light-blue,
    left: (
        default: -9px,
        mobile: -2px
     ),
  )
);

@each $key, $value in $character-map {
    left: map-get(map-get($value, left), default);
}

будет компилироваться в left: 9px;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...