Трепетание - два состояния в одном без состояния или два состояния в одном с состоянием - PullRequest
0 голосов
/ 30 апреля 2020

Я довольно новичок во Флаттере и изо всех сил пытаюсь понять, на каком этапе мне следует использовать Stateful виджеты. Чтобы проиллюстрировать мою проблему, вот простой макет.

Простой макет

Давайте предположим, что мы хотим изменить цвет фона контейнеров, когда они касаются user.

Должен ли я сделать мой виджет HomePage виджетом с сохранением состояния, содержащим состояние контейнеров? Или я должен сделать свой HomePage виджетом без сохранения состояния и сделать так, чтобы два контейнера с состоянием сохраняли свое состояние?

1 Ответ

0 голосов
/ 30 апреля 2020

Во-первых, вы должны понять, когда вам нужно использовать Stateful Widget. Официальный веб-сайт Flutter сообщает, что

Виджеты с отслеживанием состояния полезны, когда часть описываемого вами пользовательского интерфейса может динамически изменяться, например, из-за состояния, управляемого внутренними часами, или в зависимости от состояния системы.

Возможно, вы хотите изменить состояние одного Контейнера за один раз при касании, а не всей HomePage. Поэтому, если вы создадите виджет с отслеживанием состояния HomePage, вам придется повторно визуализировать оба контейнера, когда один из них будет нажат. Если вы создадите виджет Stateful Containers отдельно и Widget StatePage Stateless, будет восстановлен только Контейнер, который был задействован. Таким образом, преимущества выбора одного перед другим меняются в зависимости от вашей цели. Выберите тот, который работает лучше для вас.

...