componente personalizado es en realidad un aleteo en la clase, que desea definir el componente debe heredar StatefulWidget o StatelessWidget
StatefulWidget
: Componentes con estado, como el cuerpo retiene Widget puede entonces cambiar de ciclo de vida. A medida que el tiempo que queramos改变页面中的数据
, esta vez en la necesidad de heredar la clase StatefulWidgetStatelessWidget
: Componentes sin estado, el estado no puede ser cambiado
componentes sin estado
//直接继承无状态组件的类就可以使用
class StudyFlutter extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("我是头部的内容"),
),
body: Text("无状态内容部分"),
),
);
}
}
componente con estado
Y Vue, el enlace de datos es muy similar a reaccionar en
los siguientes casos puede ser dinámicamente generar una lista de datos haciendo clic en un botón, ver las actualizaciones de datos en tiempo real
class ShowListView extends StatefulWidget {//继承StatefulWidget主结构
ShowListView({Key key}) : super(key: key);
@override//重写动态数据构建方法
_ShowListViewState createState() => _ShowListViewState();
}
//定义私有函数来继承数据类就可以了
class _ShowListViewState extends State<ShowListView> {
List list = new List();
//这里就是有状态组件的主要结构了,这里写你要定义的代码
@override
Widget build(BuildContext context) {
return ListView(children: <Widget>[
Column(
children: this.list.map((value) {
return ListTile(
title: Text(value),
);
}).toList(),
),
RaisedButton(
onPressed: () {
setState(() {
this.list.add("我是第2条新闻");
});
},
child: Text("submit"),
)
]);
}
}