Как React поддерживает состояние компонента? - PullRequest
0 голосов
/ 27 марта 2020

Это своего рода вопрос о внутренностях реакции. 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 библиотека для создания пользовательского интерфейса и тому подобное. может быть, я что-то не так.

Мне кажется, мне нужно получить состояние старого компонента и назначить его новому компоненту. это правильный способ сделать это? спасибо!

1 Ответ

0 голосов
/ 27 марта 2020

Насколько я знаю, React использует замыкание для захвата состояния между повторными рендерингами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...