Я использую 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