Василий Хрягин, для защиты от бездумного изменения, которое может поломать работу модуля*
Всё верно.
И не только при проверке условия. Любая логика, которая завязана на это поле — проверить, что возраст валиден, поздравить с днём рождения, пересчитать другие поля, которые могут зависеть от возраста — да что угодно.
Quintis, начало положено, так правильно. Но в реальном мире было бы неплохо иметь массив элементов списка (массив объектов с id и label), рендерить массив через .map, в стейте хранить id выбранного элемента.
Quintis, согласно документации вы должны объявить стейт activeLi, класть туда идентификатор элемента и присваивать класс элементу в соответствии с состоянием. А состояние менять по клику. Читайте документацию про локальный стейт. Рефы нужны, когда необходимо обращаться к методам каких-либо нод.
А ваш код не работает из-за того, что вы обращаетесь к класслисту коллекции нод (у которой нет класслиста). И в в вашей консоли об этом написано.
igotDiamonds, в рендере выведите в консоль этот массив. Скорее всего происходит несколько рендеров подряд и изначально массива в этом поле не существует.
Поговаривают, что редакс на самом деле немного устарел (для новых проектов — уже написаны тысячи тысяч систем, работающих на редаксе и разработчики со знанием редакса ещё долго будут востребованы). Есть более современные стейт-менеджеры, переосмыслившие опыт редакса — effector (production ready), reatom (только-только вышел в полноценный релиз). Для общего развития стоит попробовать оба.
А благодарность и +1 можно выражать кнопкой «нравится» под комментарием :3
Владимир, коллбэк в .filter должен возвращать результат. Вы возвращаете undefined, что соответствует false, поэтому в результате фильтрации получается пустой массив. А .map пустого массива — это пустой массив.
Всё верно.
И не только при проверке условия. Любая логика, которая завязана на это поле — проверить, что возраст валиден, поздравить с днём рождения, пересчитать другие поля, которые могут зависеть от возраста — да что угодно.