• Как получать значение data-атрибута при клике на кастомные placemark'и?

    0xD34F
    @0xD34F Куратор тега Яндекс.Карты
    Не надо никаких data-атрибутов. Передавайте эти id в properties (второй параметр конструктора) placemark'ов, при клике получайте:

    e.get('target').properties.get('имяСвойстваСодержащегоId')


    Ну а что до показанного вами кода...

    • Почему в шаблоны placemark'ов зашивается id? Неужели вы до сих пор не в курсе, что id должны быть уникальны? Кстати, поэтому у вас и "выводит всегда 1" - ищите элемент по id, вот и получаете всегда первый из созданных.
    • Зачем вообще понадобилось искать элемент и читать data-атрибут, значение которого вам и так доступно внутри обработчика (shop.id)?
    • Создавать отдельный layout под каждый placemark не надо. Вынесите создание layout'а за пределы цикла. Если надо передавать в шаблон какие-то уникальные значения, то их опять же можно подтянуть из свойств. Как бы это выглядело для вашего data-атрибута:

      <div data-id="{{ properties.имяСвойстваСодержащегоId }}">

      Также не надо создавать отдельные функции, назначаемые в качестве обработчиков клика - создайте один обработчик за пределами цикла (да, достать id из shop после этого уже не получится, как было сказано в начале - передавайте его через properties).
    Ответ написан
    1 комментарий
  • Как иммутабельно удалить обьект по ключу из стора redux?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Да, delete будет мутировать стор.

    проще всего сделать поверхностную копию объекта и уже из неё удалить:
    if (state.key[objKey]) {
      const copy = {...state.key};
      delete copy[objKey];
      return { ...state, key: copy };
    }
    Ответ написан
    1 комментарий