@@ -429,11 +429,12 @@ class _SelectFormFieldState extends FormFieldState<String> {
429429 if (_effectiveController? .text != null &&
430430 _effectiveController? .text != '' ) {
431431 _item = widget.items? .firstWhere (
432- (lmItem) => lmItem['value' ].toString () == _effectiveController? .text,
433- );
432+ (lmItem) => lmItem['value' ].toString () == _effectiveController? .text,
433+ orElse : () => < String , dynamic > {} );
434434
435- if (_item != null ) {
436- _labelController.text = _item? ['label' ];
435+ if (_item! .length > 0 ) {
436+ _labelController.text =
437+ _item! ['label' ]? .toString () ?? _item! ['value' ]! .toString ();
437438
438439 if (widget.changeIcon &&
439440 _item? ['icon' ] != null &&
@@ -469,11 +470,13 @@ class _SelectFormFieldState extends FormFieldState<String> {
469470 if (_effectiveController? .text != null &&
470471 _effectiveController? .text != '' ) {
471472 _item = widget.items? .firstWhere (
472- (lmItem) => lmItem['value' ] == _effectiveController? .text,
473+ (lmItem) => lmItem['value' ].toString () == _effectiveController? .text,
474+ orElse: () => < String , dynamic > {},
473475 );
474476
475- if (_item != null ) {
476- _labelController.text = _item? ['label' ];
477+ if (_item! .length > 0 ) {
478+ _labelController.text =
479+ _item! ['label' ]? .toString () ?? _item! ['value' ]! .toString ();
477480
478481 if (widget.changeIcon &&
479482 _item? ['icon' ] != null &&
@@ -519,15 +522,16 @@ class _SelectFormFieldState extends FormFieldState<String> {
519522 initialValue: value,
520523 items: _renderItems (),
521524 );
522- if (lvPicked == null ) return ;
523525
524- if (lvPicked != value) {
526+ if (lvPicked != null && lvPicked != value) {
525527 _item = widget.items? .firstWhere (
526- (lmItem) => lmItem['value' ] == lvPicked,
528+ (lmItem) => lmItem['value' ].toString () == lvPicked,
529+ orElse: () => < String , dynamic > {},
527530 );
528531
529- if (_item != null ) {
530- _labelController.text = _item? ['label' ];
532+ if (_item! .length > 0 ) {
533+ _labelController.text =
534+ _item! ['label' ]? .toString () ?? _item! ['value' ]! .toString ();
531535 _effectiveController? .text = lvPicked.toString ();
532536
533537 if (widget.changeIcon &&
@@ -538,13 +542,13 @@ class _SelectFormFieldState extends FormFieldState<String> {
538542 });
539543 }
540544
541- onChangedHandler (lvPicked. toString () );
545+ onChangedHandler (lvPicked);
542546 }
543547 }
544548 }
545549
546550 Future <void > _showSelectFormFieldDialog () async {
547- Map <String , dynamic > lvPicked = await showDialog <dynamic >(
551+ Map <String , dynamic >? lvPicked = await showDialog <dynamic >(
548552 context: context,
549553 builder: (BuildContext context) {
550554 return ItemPickerDialog (
@@ -558,7 +562,8 @@ class _SelectFormFieldState extends FormFieldState<String> {
558562 );
559563
560564 if (lvPicked is Map <String , dynamic >) {
561- _labelController.text = lvPicked['label' ];
565+ _labelController.text =
566+ lvPicked['label' ]? .toString () ?? lvPicked['value' ]! .toString ();
562567 _effectiveController? .text = lvPicked['value' ].toString ();
563568
564569 if (widget.changeIcon &&
@@ -578,15 +583,16 @@ class _SelectFormFieldState extends FormFieldState<String> {
578583
579584 widget.items? .forEach ((lmElement) {
580585 PopupMenuItem <String > loItem = PopupMenuItem <String >(
581- value: lmElement['value' ],
586+ value: lmElement['value' ]. toString () ,
582587 enabled: lmElement['enable' ] ?? true ,
583588 textStyle: lmElement['textStyle' ] ?? lmElement['textStyle' ],
584589 child: Row (
585590 children: [
586591 lmElement['icon' ] ?? SizedBox (width: 5 ),
587592 Expanded (
588593 child: Text (
589- lmElement['label' ] ?? lmElement['value' ],
594+ lmElement['label' ]? .toString () ??
595+ lmElement['value' ]! .toString (),
590596 overflow: TextOverflow .fade,
591597 maxLines: 1 ,
592598 softWrap: false ,
@@ -743,7 +749,8 @@ class _ItemPickerDialogState extends State<ItemPickerDialog> {
743749 _lItemListShow.clear ();
744750
745751 _lItemListOriginal.forEach ((loCredential) {
746- lsValue = loCredential['label' ].toLowerCase ();
752+ lsValue = loCredential['label' ]? .toString ().toLowerCase () ??
753+ loCredential['value' ]! .toString ().toLowerCase ();
747754
748755 if (lsValue.contains (lsQuery)) {
749756 _lItemListShow.add (loCredential);
@@ -785,7 +792,7 @@ class ListItem extends StatelessWidget {
785792 Widget loIten = ListTile (
786793 leading: lmItem['icon' ] ?? null ,
787794 title: Text (
788- lmItem['label' ] ?? lmItem['value' ],
795+ lmItem['label' ]? . toString () ?? lmItem['value' ]! . toString () ,
789796 style: lmItem['textStyle' ] ?? lmItem['textStyle' ],
790797 ),
791798 enabled: lmItem['enable' ] ?? true ,
0 commit comments