Size: a a a

Love Frontend Chat

2020 July 08

c

cosmonaut in Love Frontend Chat
John Travolta
В общем, как-то складывается, что дочерний компонент берет промежуточный стейт родительского компонента
Т.е. отрендерил три дочерних, обращаешься к первому, он берет слепок стейта родительского когда он был еще один, если ко второму, то соответственно следующий слепок
Похоже, я плохо понимаю подобные реализации в реакте
Или я дичь сейчас какую-то написал?
источник

JT

John Travolta in Love Frontend Chat
Суть в том, что я добавляю дочерние в дом по клику
А когда что-то меняю в одном из дочерних, вижу стейт в родителе тот, который был на момент добавления именно этого дочернего
источник

JT

John Travolta in Love Frontend Chat
Надеюсь понятно объяснил
источник

JT

John Travolta in Love Frontend Chat
Можно ли это как-то обойти?
источник

JT

John Travolta in Love Frontend Chat
Т.е. обращаясь к первому добавленному дочернему, хочу видеть внутри родителя стейт, который у меня был на момент последнего добавленного
источник

П

Пора на фронт... in Love Frontend Chat
Они при маунте меняют состояние?
источник

П

Пора на фронт... in Love Frontend Chat
В теории просто добавь им ключи
источник

П

Пора на фронт... in Love Frontend Chat
Если я правильно понял тебя
источник

JT

John Travolta in Love Frontend Chat
Пора на фронт
Они при маунте меняют состояние?
В родителе в useEffect показывает все четко правильно
Но внутри функции обработчика, который передаю пропсом в дочерние, показывает такой стейт, который был в момент создания этого дочернего
источник

П

Пора на фронт... in Love Frontend Chat
Ну, просто не происходит перерисовка
источник

JT

John Travolta in Love Frontend Chat
Пора на фронт
В теории просто добавь им ключи
Ключи key в смысле в мэпе?
Есть ключи
источник

П

Пора на фронт... in Love Frontend Chat
Индексы?
источник

JT

John Travolta in Love Frontend Chat
Нет, хэши генерирую рандомные
источник

П

Пора на фронт... in Love Frontend Chat
Дай им уникальные идентификаторы. По поводу рендера могу обьяснить как работает реакт, если нужно
источник

П

Пора на фронт... in Love Frontend Chat
А внутри компонентов memo есть?
источник

П

Пора на фронт... in Love Frontend Chat
И ты когда меняешь состояние возвращаешь новый объект?
источник

П

Пора на фронт... in Love Frontend Chat
Просто это именно ошибка отрисовки, проблема именно в цикле рендера этих дочерних компонентов
источник

JT

John Travolta in Love Frontend Chat
Пора на фронт
Дай им уникальные идентификаторы. По поводу рендера могу обьяснить как работает реакт, если нужно
В ключах?
Они уникальные, каждый раз новый хэш создаю рандомный
Блин, чуть позже код закину куда-то и покажу, может так лучше будет)
источник

П

Пора на фронт... in Love Frontend Chat
Окей, можешь в личку написать, если нужно
источник

JT

John Travolta in Love Frontend Chat
Пора на фронт
А внутри компонентов memo есть?
Нет, экспортил через мемо, ничего не изменилось
источник