В родительском компоненте я через map рисую дочерние компоненты и передаю туда по строке. Все дочерние компоненты имею в своем локальном состоянии флаг. При клике по конкретному компоненту с строкой я меняю его персональный флаг, получаю строку, и сохраняю ее где-то в родителе. Кликаю по второму потомку, переключаю флаг, сохраняю вторую строку. Сравниваю две полученные строки и надо по одному из условий логики вернуть флаги в тех двух компонентах в прежнее состояние. Но как ? ведь родитель не имеет к ним прямого доступа. Какие возможны варианты ? Массив строк хранится на клиенте.
Можно у детей сделать метод restore() и дёргать его используя при переборе детей в родительском компоненте React.Children.map(this.props.children, item => item.restore()); Здесь. Както так. Можно склонировать массив в родителе и когда нужен откат просто заменить массив на клонированный массив. Другие варианты кажется с сложной логикой и оверхедом. ...Если я правильно задачу понял)
Обсуждают сегодня