flutter checkbox can't update status
高端VPN,微科 VPN 专线VPN,独立IP TikTok梯子,独享60元/月包年高速直连, 流畅播放Youtube 8K 视频不满意随时退款, QQ 2553878266
Widget _buildCheckBox(_product) {
bool? _productStatus;
if (_productStatus == null) {
_productStatus = _product.status == 'enabled' ? true : false;
}
return StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return Checkbox(
value: _productStatus,
activeColor: Theme.of(context).primaryColor,
onChanged: (_value) async {
if (_value != null) {
setState(() {
_productStatus = _value;
});
Map<String, dynamic> _params = {
'product_id': _product.id,
'merchant_id': _product.merchantId,
'status': _value ? 'enabled' : 'disabled',
};
await Provider.of(context, listen: false)
.updateProductStatus(_params)
.then((_) {
if (Provider.of(context, listen: false)
.errorMsg ==
null) {
String _result = _value ? '上线' : '下线';
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text('产品已经$_result')));
} else {
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text('产品状态更新失败')));
}
});
}
});
});
}
这段代码开始checkbox 不更新选中状态,网上搜素了一下,
在外面包了
StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {})
开始的时候可以更新,等执行完毕
Provider
又把状态更新了,setState的状态又丢失了,
评论
登陆评论
没有评论