供应商使用多个屏幕进行Flutter状态管理



我的应用程序中有两个页面,Page_APage_B。我有另外两个类,它们更新我的Privider Class中的_votes变量(默认值为0(,然后在Page_A中显示该变量,这可以很好地工作。

我正在尝试访问这个变量(_votes(,它现在更新为新页面Page_B中的23。但是,当新页面被推到屏幕上时,变量似乎被重置为0而不是23。我如何才能实现我想要做的事情。

假设这是您的提供者类

class AppState with ChangeNotifier {
int _votes = 0;
getVotes() => _votes;
setVotes(votes) {
_votes = votes;
notifyListeners();
}}

//访问

appState = Provider.of<AppState>(context);

//以获得当前值

appState.getVotes();

//设置值

v = 23;
appState.setVotes(v);

确保根类应该是这样的:

void main() {
runApp(new MyApp());}

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<AppState>(
create: (_) => AppState(),
child: MaterialApp(
home: HomePage(),
debugShowCheckedModeBanner: false));
}
}

相关内容

  • 没有找到相关文章

最新更新