Я работал над приложением Flutter, в котором пользователь запускает виджет с отслеживанием состояния с ListView элементов из базы данных SQLite. Пользователь может нажать на элемент в списке, чтобы перейти на страницу, где этот элемент можно изменить и сохранить.
Когда используется Navigator.pop(context)
, приложение возвращается в ListView, но не перестраивается. Внесенные изменения не отображаются, пока я не принудительно перестрою (горячая перезагрузка)
Это новая проблема во флаттере 1.17.
Корневой просмотр
class ItemsView extends StatefulWidget {
@override
_ItemsView State createState() => _ItemsViewState();
}
class _ItemsViewState extends State<ItemsView> {
@override
Widget build(BuildContext context) {
return FutureBuilder<List<Story>>(
future: DBProvider.db.getAllItems(),
builder: (BuildContext context, AsyncSnapshot<List<Story>> snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data[0])
}
}
)
}
}
Второй просмотр
class ModifyView extends StatefulWidget {
@override
_ModifyView State createState() => _ItemsViewState();
}
class _ItemsViewState extends State<ItemsView> {
@override
Widget build(BuildContext context) {
return FutureBuilder<List<Story>>(
future: DBProvider.db.getAllItems(),
builder: (BuildContext context, AsyncSnapshot<List<Story>> snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data[0])
}
}
)
}
}
Как заставить виджет перезагружаться?