SetState в PaginatedDataTable не обновляет представление при вложении внутри BottomNavigationBar
Я пытаюсь вызвать SetState() внутри PaginatedDataTable. По-видимому, это работает, если виджет не вложен в BottomNavigationBar, но когда я помещаю его в BottomNavigationBar, значение, установленное внутри SetState(), не обновляется, пока я не переключу вкладки, есть ли способ сделать эту работу без переключения вкладок?
Widget paginatedDataTableWidget(ItemDataSource _itemDataSource) {
return SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
verticalDirection: VerticalDirection.down,
children: <Widget>[
PaginatedDataTable(
header: const Text('Item List'),
rowsPerPage: _rowsPerPage,
sortColumnIndex: _sortColumnIndex,
sortAscending: _sortAscending,
onSelectAll: _itemDataSource._selectAll,
columnSpacing: 8,
onRowsPerPageChanged: (int value) {
setState(() {
_rowsPerPage = value;
});
},
...
body: _widgetOptions.elementAt(_selectedIndex),
bottomNavigationBar: BottomNavigationBar(
currentIndex: _selectedIndex,
selectedItemColor: Colors.teal,
items: [
BottomNavigationBarItem(
title: Text("Home"),
icon: Icon(Icons.home),
),
BottomNavigationBarItem(
title: Text("Account"),
icon: Icon(Icons.account_circle),
),
],
onTap: _onItemTapped,
),
paginatedDataTable вложен в параметры виджета, а именно:
_widgetOptions = <Widget>[showDataTable(), showAccountInfo()];
showDataTable() содержит futureBuilder, который возвращает paginatedDataTableWidget() при загрузке данных.
когда был вызван onRowsPerPageChanged(), он не обновляет страницу, пока я не перейду на другую вкладку и не вернусь на главную вкладку. Есть ли способ сделать это, не вынимая ее из BottomNavigationBar?
Любая помощь приветствуется