TxMultiCascadePicker<T, V>.fromMapList constructor

TxMultiCascadePicker<T, V>.fromMapList({
  1. required List<Map> source,
  2. ValueChanged<List<Map>?>? onChanged,
  3. String? valueKey,
  4. String? labelKey,
  5. String? idKey,
  6. String? pidKey,
  7. String? rootId,
  8. Key? key,
  9. MultiPickerItemBuilder<Map>? itemBuilder,
  10. ValueMapper<Map, bool>? disabledWhen,
  11. List<Map>? initialData,
  12. int? maxCount,
  13. bool? linkage,
  14. MultiPickerActionBarBuilder<Map>? actionBarBuilder,
  15. MultiPickerSelectedItemBuilder<Map>? selectedItemBuilder,
  16. DataWidgetBuilder<Map>? subtitleBuilder,
  17. ListTileThemeData? listTileTheme,
  18. Widget? placeholder,
  19. bool? parentCheckable,
  20. bool? showSearchField,
})

通过给定非树型数据数组创建一个级联选择器

Implementation

TxMultiCascadePicker.fromMapList({
  required List<Map> source,
  ValueChanged<List<Map>?>? onChanged,
  String? valueKey,
  String? labelKey,
  String? idKey,
  String? pidKey,
  String? rootId,
  super.key,
  MultiPickerItemBuilder<Map>? itemBuilder,
  ValueMapper<Map, bool>? disabledWhen,
  List<Map>? initialData,
  super.maxCount,
  bool? linkage,
  MultiPickerActionBarBuilder<Map>? actionBarBuilder,
  MultiPickerSelectedItemBuilder<Map>? selectedItemBuilder,
  DataWidgetBuilder<Map>? subtitleBuilder,
  super.listTileTheme,
  super.placeholder,
  bool? parentCheckable,
  super.showSearchField,
})  : linkage = linkage ?? true,
      parentCheckable = parentCheckable ?? false,
      childrenMapper = ((data) => ((data as Map)[kTreeChildrenKey] as List?)
          ?.cast<Map>() as List<T>?),
      super(
        source: source
            .toTree(
              idKey: idKey ?? kTreeIdKey,
              pidKey: pidKey ?? kTreePidKey,
              childrenKey: kTreeChildrenKey,
              rootId: rootId,
            )
            .toList() as List<T>,
        initialData: initialData as List<T>?,
        subtitleBuilder: subtitleBuilder as DataWidgetBuilder<T>?,
        itemBuilder: itemBuilder as MultiPickerItemBuilder<T>?,
        disabledWhen: disabledWhen as ValueMapper<T, bool>?,
        onChanged: onChanged as ValueChanged<List<T>?>?,
        actionBarBuilder: actionBarBuilder as MultiPickerActionBarBuilder<T>?,
        selectedItemBuilder:
            selectedItemBuilder as MultiPickerSelectedItemBuilder<T>?,
        labelMapper: (data) =>
            (data as Map)[labelKey ?? kLabelKey] as String?,
        valueMapper: (data) =>
            (data as Map)[valueKey ?? idKey ?? kTreeIdKey] as V,
      );