TxMultiCascadePicker<T, V>.fromMapList constructor
TxMultiCascadePicker<T, V>.fromMapList ({
- required List<
Map> source, - ValueChanged<
List< ? onChanged,Map> ?> - String? valueKey,
- String? labelKey,
- String? idKey,
- String? pidKey,
- String? rootId,
- Key? key,
- MultiPickerItemBuilder<
Map> ? itemBuilder, - ValueMapper<
Map, bool> ? disabledWhen, - List<
Map> ? initialData, - int? maxCount,
- bool? linkage,
- MultiPickerActionBarBuilder<
Map> ? actionBarBuilder, - MultiPickerSelectedItemBuilder<
Map> ? selectedItemBuilder, - DataWidgetBuilder<
Map> ? subtitleBuilder, - ListTileThemeData? listTileTheme,
- Widget? placeholder,
- bool? parentCheckable,
- 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,
);