【发布时间】:2020-12-13 07:01:49
【问题描述】:
` setState(() { //这里如何防止设置状态 评级 = aaa; });
onChanged: (aaa) {
setState(() {
rating = aaa;
});
},`
【问题讨论】:
标签: flutter-layout setstate flutter-form-builder
` setState(() { //这里如何防止设置状态 评级 = aaa; });
onChanged: (aaa) {
setState(() {
rating = aaa;
});
},`
【问题讨论】:
标签: flutter-layout setstate flutter-form-builder
您可以使用 ValueListenableBuilder 代替 setState。 例如:如果 rating 是 int 类型。所以,你可以创建一个 int 类型的 ValueNoifier 并监听它的变化。
ValueNotifier<int> rating = ValueNotifier<int>(0);
//......change the value of rating in the onChanged:
onChanged(aaa){
rating.value = aaa;
}
// .... Wrap your Widget with Listenable builder to listen to the change in rating.
ValueListenableBuilder(
valueListenable: rating,
builder : (context, value, child) => SomeWidget(......)
)
【讨论】: