flutter - 如何用 ValueListenableBuilder 小部件包装复选框小部件?
问题描述
Checkbox( value: datas[i]["check"], onChanged: (bool newValue) => setState((){ 循环中的数组数据 datas[i]["check"] = !datas[i]["check" ]; }), ),
解决方案
您可以将Checkbox与ValueListenableBuilder一起使用,如下所示:
鉴于您有一个ValueNotifier变量_checkboxState
来保存您的Checkbox
状态:
final ValueNotifier<bool> _checkboxState = ValueNotifier<bool>(false); //Initialized to false
您可以使用包装Checkbox
小部件ValueListenableBuilder
并摆脱该setState
方法并设置ValueNotifier
变量值:
ValueListenableBuilder(
valueListenable: _checkboxState,
builder: (BuildContext context, dynamic value, Widget child) {
return Checkbox(
value: _checkboxState.value,
onChanged: (newCheckboxState) {
_checkboxState.value = newCheckboxState;
},
);
},
),
推荐阅读
- ios - Alamofire 5.0.0-rc.3 RequestInterceptor Adapt 方法没有被调用 Alamofire 虽然在响应中有任何错误时会调用重试
- ios - 未调用 iOS 回调的 FCM 推送
- c# - 如何在 c# windows 窗体中使用计时器仅在按下按钮时才上下移动电梯?
- clojurescript - 带有 cljsjs/react-day-picker 的 Clojurescript 日期时间选择器
- bash - 检查特定名称服务器上是否存在 dns-zone
- angular - 库模块中的 Angular APP_INITIALIZER 生成元数据编译时错误:不支持 Lambda
- php - 获取一个月的每日平均值
- kdb - 在 q kdb 中的特定条件下使用 group by 优化查询
- php - 无效的日期时间格式:1292 使用旧日期时
- c++ - C++ 中带有编译时检查的链表