Как использовать PageView PageController во Flutter, используя Redux

Поскольку PDO, похоже, не дает хорошего решения, вы можете также рассмотреть возможность использования DBAL, который в основном следует API PDO, но также добавляет некоторые полезные функции http://docs.doctrine-project.org/ project / doctrine-dbal / ru / latest / reference / data-retrieval-and-manipulation.html # list-of-parameters-conversion

$stmt = $conn->executeQuery('SELECT * FROM articles WHERE id IN (?)',
    array(array(1, 2, 3, 4, 5, 6)),
    array(\Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
);

Возможно, есть и другие пакеты там, которые не добавляют сложности и не скрывают взаимодействия с базой данных (как и большинство ORM), но в то же время облегчают небольшие типичные задачи.

0
задан Blau 25 February 2019 в 00:18
поделиться

2 ответа

Кажется, я понял, как решить мою проблему. Я видел ответ в этом посте: Flutter: setState () или markNeedsBuild () вызывается, когда дерево виджетов было заблокировано ... во время изменения ориентации

В этом посте OP сталкивался с тем же ошибка при переключении между портретным и ландшафтным режимами, когда ящик был открыт. Ответ в этом посте предложил вызвать Navigator.pop () (который закрывает Drawer) перед изменением режимов просмотра.

Поэтому я попробовал и закрыл свой Drawer, используя Navigator.pop (), перед использованием метода .jumpToPage PageController. Кажется, это работает, и позволяет мне перемещаться между страницами PageView, используя события onTap из Drawer, не выбрасывая «При завершении дерева виджета было выдано следующее утверждение: setState () или markNeedsBuild () вызывается, когда дерево виджетов было заблокировано «Исключение.

Я предполагаю, что это означает, что, пока ящик открыт, дерево виджетов переводится в заблокированное состояние.

Надеюсь, это кому-то поможет, так как мне понадобилось время, чтобы понять.

0
ответ дан Blau 25 February 2019 в 00:18
поделиться

@Blau

Иногда событие происходило за пределами созданных вами виджетов. например (1) Таймер, который увеличивает «Глобальный счетчик», этот счетчик будет отображаться на многих страницах / виджетах (2) Сообщение, отправленное с сервера сокетов, при получении этого сообщения / события пользователь может находиться где угодно (любые страницы / widgets), и вы не знаете, где 'setState' (или виджета фактически нет там, потому что пользователь не на этой странице)

Я построил 2 примера, которые демонстрируют, как использовать Redux для решить проблемы такого рода:

Пример 1: (использовать многопоточный таймер для установки виджета при запуске внешнего события)

https://github.com / lhcdims / statemanagement01

Пример 2: (Используйте Redux для обновления виджета при запуске внешнего события)

https://github.com/lhcdims/statemanagement02 [ 111]

Демонстрационный снимок экрана:

enter image description here

0
ответ дан Kenneth Li 25 February 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: