我有一个带有一些有状态和无状态小部件的小型flutter应用程序。 我的抽屉小部件如下所示:
class AppDrawer extends StatelessWidget{
@override
Widget build(BuildContext context) {
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
_createDrawerHeader(),
ListTile(
title: Text('Scenario'),
onTap: () {
Navigator.pop(context);
Navigator.pushReplacementNamed(context, Routes.scenario);
},
),
...
这对于在我的小部件之间切换很有效。我现在有一个简单的计数器小部件,该计数器小部件在其状态下存储计数器变量。
class Counter extends StatefulWidget {
static const String routeName = '/Counter';
int _counter = 0;
@override
_CounterState createState() => new _CounterState();
}
class _CounterState extends State<Counter> {
void _increment() {
setState(() {
widget._counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Row(
children: <Widget>[
new RaisedButton(
onPressed: _increment,
child: new Text('Increment'),
),
new Text('Count: ${widget._counter}'),
],
),
drawer: AppDrawer(),
);
}
}
如果我使用抽屉在此窗口小部件与我的其他窗口小部件之间切换,然后返回到计数器窗口小部件,则计数器始终为0。状态似乎每次都被初始化。 我是使用Flutter的初学者,可以在此状态下保存变量。我想我错了。由于我的搜索没有得到一些有用的结果,也许您可以给我一个解决方法,或者仅提供一些信息链接。 感谢您的帮助:)
答案 0 :(得分:0)
我建议学习某种状态管理实践。您最终将需要学习这一点,因为这是必不可少的步骤。请尝试使用提供程序,它简单易用。