为理解一个 Widget
的生命周期,下面先来看一个计数器示例:
//定义一个有状态的组件
class CounterWidget extends StatefulWidget{
final int initValue;
const CounterWidget({Key key,this.initValue:0});
@override
State<StatefulWidget> createState() {
return new _CounterWidgetState();
}
}
对应的 State:
class _CounterWidgetState extends State<CounterWidget>{
int _counter;
void initState(){
super.initState();
_counter = widget.initValue;
print('initState');
}
@override
Widget build(BuildContext context) {
print('build');
return Scaffold(
body: Center(
child: FlatButton(
child: Text('$_counter'),
onPressed: () => setState(() => ++_counter),
),
),
);
}
@override
void didUpdateWidget(CounterWidget oldWidget){
super.didUpdateWidget(oldWidget);
print('didUpdateW