【不定时更新补充】边学习边用flutter开发一款社区App,记录下每次的踩坑记录。
目录
组件
待补充
状态
setState方法
当我们在有状态下的组件(StatefulWidget)时,可以动态的更新组件状态。
例如我的组件是展示用户昵称,也包含修改用户昵称的功能。
class UserProfilePage extends StatefulWidget {
UserProfilePage({super.key});
@override
State<StatefulWidget> createState() => UserProfilePageState();
}
class UserProfilePageState extends State<UserProfilePage> {
late String name = "小明";
// 按钮onTap时,调用 changeName(),则可发生改变
changeName() {
setState((){name = "小红";});
}
@override
Widget build(BuildContext context) {
return Text(name)
}
}
那么setState实际做了什么事情呢?
- func内的逻辑执行,做一些修改动作
- 触发当前class 的build方法,对当前页进行重新绘制,最终起到了动态修改name的作用。
因此我们要注意,在使用setState时避免循环调用build!例如changeName直接写在build方法中,没有经过任何条件或事件下每次都能触发,则会导致循环调用。