Это своего рода вопрос о внутренностях реакции. js. Вот как я понимаю виртуальный дом.
old (rendered from component <X/>) new (rendered from component <X/>)
null <div>
<AnotherComponent/> <- state {count:0}
<p>{this.state.text}</p>
</div>
во время сравнения функция видит, что старый снимок пуст. мы создаем наши элементы и элементы из компонента <AnotherComponent/>
.
old (rendered from component <X/>) new (rendered from component <X/>)
<div> <div>
<AnotherComponent/> <- state {count:1} <AnotherComponent/> <- state {count:0} ?
<p>Lorem ipsum</p> <p>Lorem ...</p> <- state updates
</div> </div>
, скажем, компонент <X/>
обновляется во второй раз, и <AnotherComponent/>
изменил свое состояние перед обновлением parent.
Хорошо, я сравниваю два снимка, применяю изменения. но <AnotherComponent/>
сбросит его состояние, и у меня будет {count:0}
вместо {count:1}
.
как отреагировать. js или любая другая декларативная js библиотека для создания пользовательского интерфейса и тому подобное. может быть, я что-то не так.
Мне кажется, мне нужно получить состояние старого компонента и назначить его новому компоненту. это правильный способ сделать это? спасибо!