我flutter-riverpod
在我的应用程序中使用状态管理。由于使用 Riverpod,我必须将我的更改Stateful widget
为consumer widget
,我无法访问setState()
. 现在,使用 为底栏编写状态管理代码后Riverpod
,它不起作用。
这是我的代码-
int index = 0;
class HomePage extends ConsumerWidget {
final currentIndex = Provider<int>((ref) => index);
Widget build(BuildContext context, ScopedReader watch) {
int _currentIndex = watch(currentIndex);
return auth.when(//authstatchange provider
data: (e) {
if (e!=null&&e.uid != null) {
return Scaffold(
body: PageView(
physics: NeverScrollableScrollPhysics(),
controller: _pageController,
onPageChanged: (ind) {
index = ind;
},
children: [
SomePage(),
],
),
bottomNavigationBar: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Container(
someCode(),
),
child: SomeCode(),)
tabBackgroundColor: Colors.grey[800],
tabs: [
tabs()
],
selectedIndex: _currentIndex,
onTabChange: (ind) {
index = ind;
_pageController.jumpToPage(index);
)//closing brackets (omitted)
//brackets