在颤动中映射列表

Posted

技术标签:

【中文标题】在颤动中映射列表【英文标题】:Mapping a list in flutter 【发布时间】:2022-01-06 15:20:38 【问题描述】:

我尝试将问题列表映射到小部件,但当我运行应用程序时它不断返回错误,但代码中没有错误警告。请有人帮我检测这里做错了什么。

...(questions[_questionIndex]['answer'] as List<String>).map((answer) 
              return Answer(_answerQuestion, answer);
            ).toList(),

从上面的代码中,我调用了一个索引为 _questionIndex 的问题列表,该索引由所有问题的长度生成,然后访问一个名为“answer”的键。请列表是问题和答案的地图列表。

这是我在应用程序中的错误:

════════ Exception caught by widgets library ═══════════════════════════════════
The following _CastError was thrown building MyApp(dirty, state: _MyAppState#38d02):
type 'Null' is not a subtype of type 'List<String>' in type cast

【问题讨论】:

可以添加questions[_questionIndex]['answer']的样本数据吗? "代码中没有错误警告" ... 不会出现任何静态分析错误,因为您通过执行显式 as List&lt;String&gt; 强制转换显式抑制了它们。当你这样做时,你是在告诉分析器和编译器信任你。 【参考方案1】:

questions[_questionIndex]['answer'] 包含一个空值,并且您将其转换为不可为空的List&lt;String&gt;。要么确保迭代不包含任何 null 值,要么将您的转换更改为 List&lt;String?&gt; 以允许空值。

【讨论】:

questions[_questionIndex]['answer'] 实际上包含一个答案列表,并且肯定不是 null,dart 说它的 null 让我感到困惑。 将您的演员表更改为 List&lt;String?&gt; 并尝试一下。否则,您需要提供一些示例数据以便我查看。 感谢您的所有贡献。当我从地图中调用值时,我发现错误是一个错字。【参考方案2】:

感谢您的所有贡献。当我从 Map 中调用值时,我发现错误是拼写错误。

【讨论】:

以上是关于在颤动中映射列表的主要内容,如果未能解决你的问题,请参考以下文章

将 Json 响应中的对象列表映射到颤动中的列表

无法选择复选框列表平铺颤动

如何遍历地图列表并在颤动列表视图中显示文本小部件?

颤动 - 如何在颤动中保存状态选择的单选按钮列表?

无法在颤动中正确显示列表

如何在颤动中制作变量列表?