状态
状态
状态组件
Stateful 有状态
在 IDE 内输入 stful 回车键可以快速创建
有状态组件
class RandomWords extends StatefulWidget {
const RandomWords({Key? key}) : super(key: key);
@override
State<RandomWords> createState() => _RandomWordsState();
}
class _RandomWordsState extends State<RandomWords> {
// 可以实例化一些对象
类名({
required this.product, // 接收参数
});
final Product product; // 接收的参数
// 可以定义一些方法
void 名称() {
// 代码
}
@override
Widget build(BuildContext context) {
// 接收路由传递的参数
var params = ModalRoute.of(context)?.settings.arguments;
return Text(''); // 返回组件
}
}
接收参数
演示
class A extends StatefulWidget {
String name; // 参数
A({Key? key, required this.name }) : super(key: key); // name 为接收的参数
@override
State<A> createState() => _AState();
}
class _AState extends State<A> {
@override
void initState() {
super.initState();
this.widget.name // 接收到传递到参数
}
// 省略代码
}
initState
放在有状态组件内的方法, 每次调用的时候执行一次.
@override
void initState() {
super.initState();
}
Stateless 无状态
在 IDE 内输入 stless 回车键可以快速创建
更新状态
在状态组件内 为一个已有变量更新值
setState(() {
变量 = 值;
})