Browse Source

fix VCheckBoxButtonGroup default check bug

Melon 1 year ago
parent
commit
6619b0cd0e
1 changed files with 6 additions and 5 deletions
  1. 6 5
      lib/components/checkbox_button.dart

+ 6 - 5
lib/components/checkbox_button.dart

@@ -39,14 +39,16 @@ class _VCheckBoxGroupState<T, TValue>
     final length = widget.source.length;
     for (var i = 0; i < length; i++) {
       final e = widget.source[i];
+      final value = widget.valueGetter(e);
+      final isChecked = _checkedValues.contains(value);
       children.add(
         SizedBox(
           width: widget.itemWidth ?? 160,
           child: VCheckBoxButton(
             label: widget.labelGetter(e),
-            isChecked: false,
-            onChanged: (value) {
-              _onItemChanged(e, value);
+            isChecked: isChecked,
+            onChanged: (status) {
+              _onItemChanged(value, status);
             },
           ),
         ),
@@ -59,8 +61,7 @@ class _VCheckBoxGroupState<T, TValue>
     );
   }
 
-  void _onItemChanged(T data, bool isChecked) {
-    final value = widget.valueGetter(data);
+  void _onItemChanged(TValue value, bool isChecked) {
     if (isChecked) {
       if (_checkedValues.contains(value) == false) {
         _checkedValues.add(value);