Flutter 重新创建小部件时颤振重置状态小部件状态
在我的flatter小部件中,我有一个Flutter 重新创建小部件时颤振重置状态小部件状态,flutter,widget,statefulwidget,Flutter,Widget,Statefulwidget,在我的flatter小部件中,我有一个StreamBuilder,它检查snapshot.hasError,在这种特定情况下,它将返回我的ErrorRetryWidget() 不确定这是否是一个好的实践。传递一个唯一的键,让它创建一个新的小部件 if (snapshot.hasError) { return ErrorRetryWidget(key: UniqueKey()); } 正如您所说,我使用didUpdateWidget重置有状态小部件的状态。它在动画中也很有用 我要添加的唯
StreamBuilder
,它检查snapshot.hasError
,在这种特定情况下,它将返回我的ErrorRetryWidget()
不确定这是否是一个好的实践。传递一个唯一的键,让它创建一个新的小部件
if (snapshot.hasError) {
return ErrorRetryWidget(key: UniqueKey());
}
正如您所说,我使用didUpdateWidget重置有状态小部件的状态。它在动画中也很有用 我要添加的唯一注释是不要像您那样使用setState,因为当框架调用didUpdateWidget时,它会立即调用build。因此,您不必触发调用来在didUpdateWidget中构建。它最终调用build两次
@override
void didUpdateWidget(covariant oldWidget) {
super.didUpdateWidget(oldWidget);
retrying = false;
}
if (snapshot.hasError) {
return ErrorRetryWidget(key: UniqueKey());
}
@override
void didUpdateWidget(covariant oldWidget) {
super.didUpdateWidget(oldWidget);
retrying = false;
}