Добавление элемента в список компонентов без потери локального состояния существующих компонентов - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть структура компонентов в приложении React, как показано на экране. Я использую перехватчики React, но это, вероятно, не очень актуально.

Компонент TabPage отображает список компонентов Plot на основе своего локального состояния, полученного от серверной части, в которой он имеет список графиков. идентификаторы.

В какой-то момент я хотел бы добавить элемент в список. Я отправляю запрос на добавление графика в базу данных, загружаю список идентификаторов графиков, расширенный на один элемент, до локального состояния TabPage. Состояние TabPage изменилось, поэтому компонент перерисовывается вместе с его потомками. Это приводит к потере локального состояния каждого из Plot компонентов и их потомков - в частности, PlotlyComponent, неуправляемого компонента из библиотеки Plot.ly JS, которая внутренне управляет, например, состоянием масштабирования диаграммы.

Вопрос: может ли элемент быть добавлен в список Plot в такой ситуации, не теряя локальный статус существующих участков и их потомков?

Я знаю, что было бы возможно перенести состояние всех этих компонентов и потомков Plot в TabPage, но тогда TabPage будет очень сложным, и у меня может возникнуть проблема с вытаскиванием состояния масштабирования PlotlyComponent и превращением его в управляемый компонент.

Я также знаю, что могу использовать useMemo и помню существующие компоненты Plot, но официально useMemo не следует использовать для управления поведением приложения, а только для того, чтобы избежать повторного рендеринга для оптимизации (в будущем useMemo может повторно визуализировать время от времени, например, в зависимости от количества доступной оперативной памяти).

enter image description here* 1 027 *

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