Sitelet https://github.com/Dn-a/flutter_tags/issues/79
Skip to content

type 'Null' is not a subtype of type 'DataList' in type cast #79

Description

@sarbogast

I'm trying to integrate this library into my project and I want to let users choose items from a list or add their own items to it. Here is what I have so far:

final GlobalKey<TagsState> _tagStateKey = GlobalKey<TagsState>();
  List<String> _existingTopics = ['religion', 'politics', 'literature'];
  List<String> _topics = [];

...
Tags(
                  key: _tagStateKey,
                  textField: TagsTextField(
                    constraintSuggestion: true,
                    suggestions: _existingTopics,
                    //width: double.infinity, padding: EdgeInsets.symmetric(horizontal: 10),
                    onSubmitted: (String str) {
                      // Add item to the data source.
                      setState(() {
                        // required
                        _topics.add(str);
                      });
                    },
                  ),
                  itemCount: _topics.length, // required
                  itemBuilder: (int index) {
                    final topic = _topics[index];

                    return ItemTags(
                      // Each ItemTags must contain a Key. Keys allow Flutter to
                      // uniquely identify widgets.
                      key: Key(index.toString()),
                      index: index, // required
                      title: topic,
                      combine: ItemTagsCombine.withTextBefore,
                      image: null,
                      icon: null,
                      removeButton: ItemTagsRemoveButton(
                        onRemoved: () {
                          // Remove the item from the data source.
                          setState(() {
                            _topics.removeAt(index);
                          });
                          return true;
                        },
                      ),
                    );
                  },
                )

But when I start typing one of the _existingTopics and then type the submit button on the iOS keyboard, I see this:

Capture d’écran 2021-04-08 à 00 16 26

And I get the following exception:

[+165250 ms] flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
[   +2 ms] flutter: The following _CastError was thrown building ItemTags-[<'0'>](dirty, dependencies:
[        ] flutter: [DataListInherited], state: _ItemTagsState#81225):
[        ] flutter: type 'Null' is not a subtype of type 'DataList' in type cast
[        ] flutter:
[        ] flutter: The relevant error-causing widget was:
[   +8 ms] flutter:   ItemTags-[<'0'>] file:///Users/sarbogast/dev/blindly/blindly/lib/screens/topics_screen.dart:108:28
[        ] flutter:
[        ] flutter: When the exception was thrown, this was the stack:
[        ] flutter: #0      List.length= (dart:core-patch/growable_array.dart:222:12)
[        ] flutter: #1      _ItemTagsState._setDataList (package:flutter_tags/src/item_tags.dart:153:33)
[        ] flutter: #2      _ItemTagsState.build (package:flutter_tags/src/item_tags.dart:214:5)
[        ] flutter: #3      StatefulElement.build (package:flutter/src/widgets/framework.dart:4612:27)
[        ] flutter: #4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4495:15)
[        ] flutter: #5      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4667:11)
[        ] flutter: #6      Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #7      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4474:5)
[        ] flutter: #8      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4658:11)
[        ] flutter: #9      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4469:5)
[        ] flutter: #10     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3541:14)
[        ] flutter: #11     Element.updateChild (package:flutter/src/widgets/framework.dart:3306:18)
[        ] flutter: #12     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5561:32)
[        ] flutter: #13     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6105:17)
[        ] flutter: #14     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #15     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[  +16 ms] flutter: #16     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #17     ProxyElement.update (package:flutter/src/widgets/framework.dart:4843:5)
[        ] flutter: #18     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #19     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #20     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4667:11)
[        ] flutter: #21     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #22     StatefulElement.update (package:flutter/src/widgets/framework.dart:4699:5)
[        ] flutter: #23     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #24     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #25     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #26     ProxyElement.update (package:flutter/src/widgets/framework.dart:4843:5)
[        ] flutter: #27     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #28     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5503:32)
[        ] flutter: #29     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6105:17)
[        ] flutter: #30     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #31     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5981:14)
[        ] flutter: #32     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #33     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #34     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #35     ProxyElement.update (package:flutter/src/widgets/framework.dart:4843:5)
[        ] flutter: #36     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #37     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5981:14)
[        ] flutter: #38     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #39     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #40     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #41     StatelessElement.update (package:flutter/src/widgets/framework.dart:4576:5)
[        ] flutter: #42     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #43     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #44     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #45     StatelessElement.update (package:flutter/src/widgets/framework.dart:4576:5)
[        ] flutter: #46     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #47     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #48     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #49     ProxyElement.update (package:flutter/src/widgets/framework.dart:4843:5)
[        ] flutter: #50     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #51     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #52     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #53     ProxyElement.update (package:flutter/src/widgets/framework.dart:4843:5)
[        ] flutter: #54     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #55     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5503:32)
[        ] flutter: #56     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6105:17)
[        ] flutter: #57     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #58     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #59     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4667:11)
[        ] flutter: #60     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #61     StatefulElement.update (package:flutter/src/widgets/framework.dart:4699:5)
[        ] flutter: #62     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #63     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #64     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #65     ProxyElement.update (package:flutter/src/widgets/framework.dart:4843:5)
[  +17 ms] flutter: #66     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #67     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #68     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4667:11)
[        ] flutter: #69     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #70     StatefulElement.update (package:flutter/src/widgets/framework.dart:4699:5)
[        ] flutter: #71     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #72     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5981:14)
[        ] flutter: #73     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #74     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #75     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #76     StatelessElement.update (package:flutter/src/widgets/framework.dart:4576:5)
[        ] flutter: #77     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #78     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5981:14)
[        ] flutter: #79     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #80     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #81     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4667:11)
[        ] flutter: #82     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #83     StatefulElement.update (package:flutter/src/widgets/framework.dart:4699:5)
[        ] flutter: #84     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #85     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #86     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4667:11)
[        ] flutter: #87     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #88     StatefulElement.update (package:flutter/src/widgets/framework.dart:4699:5)
[        ] flutter: #89     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #90     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #91     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #92     ProxyElement.update (package:flutter/src/widgets/framework.dart:4843:5)
[        ] flutter: #93     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #94     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #95     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4667:11)
[        ] flutter: #96     Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #97     StatefulElement.update (package:flutter/src/widgets/framework.dart:4699:5)
[        ] flutter: #98     Element.updateChild (package:flutter/src/widgets/framework.dart:3293:15)
[        ] flutter: #99     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4520:16)
[        ] flutter: #100    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4667:11)
[        ] flutter: #101    Element.rebuild (package:flutter/src/widgets/framework.dart:4189:5)
[        ] flutter: #102    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2694:33)
[        ] flutter: #103    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:873:21)
[        ] flutter: #104    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
[        ] flutter: #105    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
[        ] flutter: #106    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
[        ] flutter: #107    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:998:5)
[        ] flutter: #111    _invoke (dart:ui/hooks.dart:161:10)
[        ] flutter: #112    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:253:5)
[        ] flutter: #113    _drawFrame (dart:ui/hooks.dart:120:31)
[        ] flutter: (elided 3 frames from dart:async)

And the component crashes. Did I forget something?

Note that I am using Flutter 2.0.5 with null safety, along with version 1.0.0-nullsafety.1 of the flutter_tags library

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions