在 Flutter 中使用 Bloc 架构时调用 setState 方法是一种好习惯吗?
Is it a good practice to call setState method while using Bloc architecture in Flutter?
我正在为我的项目使用 bloc 架构,我正在尝试 disable/enable 基于复选框值的表单。
这是我的代码->>>
Widget _buildSameAsResidential(BuildContext context) {
return StreamBuilder<FormValue<bool, String>>(
initialData: _addressBloc.residentailEqualMailingValue,
stream: _addressBloc.residentailEqualMailing,
builder: (context, snapshot) {
return MemberFormField(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Checkbox(
onChanged: (isChecked) {
setState(() {
_isBothAddressEquals = isChecked;
});
_addressBloc.dispatch(
UpdateResidentialEqualMailing(value: isChecked));
},
value: snapshot.data.value,
),
],
),
);
},
);
}
如果需要,将 setState 与 bloc 一起使用并没有什么罪过,但对于在您的代码中使用它的使用方式,不需要 setState。复选框状态已由块处理。
我正在为我的项目使用 bloc 架构,我正在尝试 disable/enable 基于复选框值的表单。
这是我的代码->>>
Widget _buildSameAsResidential(BuildContext context) {
return StreamBuilder<FormValue<bool, String>>(
initialData: _addressBloc.residentailEqualMailingValue,
stream: _addressBloc.residentailEqualMailing,
builder: (context, snapshot) {
return MemberFormField(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Checkbox(
onChanged: (isChecked) {
setState(() {
_isBothAddressEquals = isChecked;
});
_addressBloc.dispatch(
UpdateResidentialEqualMailing(value: isChecked));
},
value: snapshot.data.value,
),
],
),
);
},
);
}
如果需要,将 setState 与 bloc 一起使用并没有什么罪过,但对于在您的代码中使用它的使用方式,不需要 setState。复选框状态已由块处理。