【不定时更新补充】边学习边用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实际做了什么事情呢?

  1. func内的逻辑执行,做一些修改动作
  2. 触发当前class 的build方法,对当前页进行重新绘制,最终起到了动态修改name的作用。

因此我们要注意,在使用setState时避免循环调用build!例如changeName直接写在build方法中,没有经过任何条件或事件下每次都能触发,则会导致循环调用。

posted @ 2024-10-27 23:11  LiusCraft  阅读(9)  评论(0编辑  收藏  举报