大佬教程收集整理的这篇文章主要介绍了Flutter入门之有状态组件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在上一篇Flutter入门之无状态组件中我们讲到了无状态组件
,所谓的无状态组件指的就是其内部的状态是来自其父组件并使用final类型的变量来存储,当组件被build的时候它们就使用这些不可变的数据来构建自己的UI。
为了构建更加复杂且可和用户产生交互的组件,在Flutter中提供了StatefulComponents
来实现这种需求。
下面来看一个简单的例子‘点击按钮,并在按钮文字上不断更新点击的次数’。
import @H_197_16@'package:Flutter/material.dart';
import @H_197_16@'flat_color_button.dart';
class Counter extends StatefulComponent { //(1)
_CounterState createState() => new _CounterState(); //(2)
}
class _CounterState extends State<Counter> { //(3)
int _count = 0; //(3)
void _increment() {
setState(() { //(4)
++_count;
});
}
Widget build(BuildContext context) {
return new Container(
decoration: new BoxDecoration(BACkgroundColor: Colors.greY[100]),child: new Center(
child: new RaisedButton(
onPressed: _increment,child: new Text(@H_197_16@'click count : ${_count}'))));
}
}
main() {
runApp(new MaterialApp(
title: @H_197_16@'counter',routes: {@H_197_16@'/': (RouteArguments args) => new Counter()}));
}
运行结果如下:
代码解释如下:
StatefulComponent
和State
要分开使用而不是集成在StatefulComponent
内部,这是因为它们两个在程序的运行过程中有各自的生命周期,StatefulComponent
仅用来表示控件的表现形式随时可能发生改变,而State
的生命周期存在与两次build方法之间。StatefulComponent
的时候回去调用createState()
来获得其组件内容。State
内部存储可变状态值,并通过实现build
来构建组件。以上是大佬教程为你收集整理的Flutter入门之有状态组件全部内容,希望文章能够帮你解决Flutter入门之有状态组件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。