首页 > 解决方案 > 如何用 ValueListenableBuilder 小部件包装复选框小部件?

问题描述

Checkbox( value: datas[i]["check"], onChanged: (bool newValue) => setState((){ 循环中的数组数据 datas[i]["check"] = !datas[i]["check" ]; }), ),

标签: fluttercheckboxsetstate

解决方案


您可以将CheckboxValueListenableBuilder一起使用,如下所示:

鉴于您有一个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;
          },
        );
      },
    ),

推荐阅读