【不定时更新补充】边学习边用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方法中,没有经过任何条件或事件下每次都能触发,则会导致循环调用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了