Я не нашел пример/демонстрацию или документацию о правильном способе обработки действий пользователя «при изменении» или «при щелчке» с помощью бумажного переключателя для Redux.
Прямо сейчас у меня есть аннотированная функция прослушивания событий, которая вызывается, но в этой функции я не могу получить ссылку на исходный элемент. Мне нужно новое значение включения/выключения и значение атрибута id, чтобы я мог обновить правильное состояние в магазине Redux. У меня есть несколько элементов paper-toggle-button в представлении, каждый для другого свойства в магазине Redux.
Я добавил прослушиватель событий для "checked-changed", но выброшенное событие не содержало обратной ссылки на элемент html. Почему в событии не сказано, откуда оно взялось?
«event.target» указывает на внешний контейнер, содержащий дочерние элементы, вызывающие событие. Чтобы узнать это, я установил точку останова в console.log(event.target.nodeName).
Я полагаю, что мог бы запросить выбор всех элементов переключения и сохранить все значения в хранилище Redux, но я бы предпочел обновить только тот, который изменился.
документация предполагает, что я должен иметь возможность использовать "это" как ссылка на внешний пользовательский элемент, содержащий мои элементы paper-toggle-button, что кажется бесполезным, потому что мне нужен идентификатор для запроса элемента, вызвавшего событие.
Важно отметить, что я создаю свои бумажные кнопки-переключатели с помощью dom-repeat. Я перебираю небольшой массив объектов, чтобы создать несколько переключателей. Это означает, что все переключатели будут вызывать одну и ту же функцию обработчика событий для события изменения. Я должен сделать это, потому что переключатели можно переупорядочить вручную с помощью перетаскивания, что, к сожалению, требует dom-repeat. Если бы перетаскивание не было обязательным, я мог бы отказаться от dom-repeat и просто создать статический/фиксированный список переключателей, где у каждого переключателя был бы свой собственный обработчик событий.
Как вы могли догадаться, я новичок в разработке интерфейса.