169 похожих чатов

Добрый день. Подскажите пожалуйста как решить вот такую проблему. Имеется

массив объектов большой глубины вложенности, хранится в стейте родительского компонента. для вывода этой структуры используется рекуррентная функция, которая вглубь перебирает все ветки и выводит их. на каждой ветке я могу получить путь к конкретному элементу и передать этот путь в функцию в родительском компоненте немогу понять как мне в стейте поменять значение у одного элемента в глубине вложенности? путь имеет вид this.state.data[3].children[5].children[2].isOpen к примеру

5 ответов

8 просмотров

Вообще не нужно делать такой сложный стейт, нормализуй его как то. А вообще вот так https://redux.js.org/recipes/structuring-reducers/immutable-update-patterns

Сергей- Автор вопроса
Тимофей 🛴
Вообще не нужно делать такой сложный стейт, нормал...

а как тогда по другому решить вопрос с обновлением данных в дереве без обнуления состояний открытости веток?

Сергей- Автор вопроса
Тимофей 🛴
Что?

я загружаю это дерево элементов по API, после чего в каждую ветку добавляю свойство isOpen, по которому определяю развернута ветка или нет. задача в том, что надо в родительском компоненте в стейте менять состояние этого свойства. При изменении данных в дереве, отправляется запрос на бек по изменению данных и на фронте заново загружается объект в родительском компоненте и из предидущего перекладываются в новый состояния из isOpen чтобы сохранить состояния открытости веток

Сергей
я загружаю это дерево элементов по API, после чего...

Не понимаю как это противоречит тому что я скинул. Если дерево сложное преобразуй его. Или isOpen храни не в нем, а например отдельным массивом, в котором будут id открытых веток. Если ничего преобразовывать не хочешь то делай огромные редьюсеры как в доке что я скинул или бери immer какой нибудь

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта