类型“String”不是类型转换中“List<String>”类型的子类型?

Posted

技术标签:

【中文标题】类型“String”不是类型转换中“List<String>”类型的子类型?【英文标题】:type 'String' is not a subtype of type 'List<String>' in type cast? 【发布时间】:2021-12-12 04:23:47 【问题描述】:

我该如何解决这个问题?我无法运行代码,因为 String 有错误

        Text(
          questions[_questionsIndex]['questionText'] as String,
          style: TextStyle(color: Colors.orange, fontSize: 30),
        ),
        ...(questions[_questionsIndex]['questionText'] as List<String>).map((answer) 
          return Answer(_answerQuestions, answer);
        ).toList()

【问题讨论】:

【参考方案1】:

问题是这样的:

questions[_questionsIndex]['questionText'] as String

questions[_questionsIndex]['questionText'] as List<String>

questions[_questionsIndex]['questionText'] 怎么可能同时是 StringList&lt;String&gt;

我无法确定,因为您没有显示 questions 变量内部的内容,而且我们不知道您想做什么,但您可能想做这样的事情:

...(questions as List<Map<String, dynamic>>).map((question) 
  return Answer(_answerQuestions, question['questionText']);
).toList()

【讨论】:

添加问题的价值,我可以更轻松地帮助你,我猜不出问题里面的内容【参考方案2】:

我决定在 Udemy (flutter) 开设一门在线课程,并显示了这段代码,以通过测验加载问题和答案:

    Question(
      questions[_questionsIndex]['questionText'],
    ),

    ...(questions[_questionsIndex]['questionText'] as List<String>).map((answer) 
      return Answer(_answerQuestions, answer);
    ).toList()

但实际上它不起作用。我试图将“作为字符串”放在第一行,但模拟器确实显示错误。所以我尝试了你的版本,但它没有帮助我

【讨论】:

哪一行给你错误??另外,问题变量的值是多少?? questions[_questionsIndex]['questionText'] //此行报错,变量值为 var _questionsIndex = 0; const questions = [ 'questionText': '你最喜欢的颜色是什么?', 'answers': ['Black', 'Red', 'Magenta', 'Orange'] , etc .. 我已将问题从 List> 编辑为 List> 终于成功了,太棒了。我会慢慢看懂的。

以上是关于类型“String”不是类型转换中“List<String>”类型的子类型?的主要内容,如果未能解决你的问题,请参考以下文章

未处理的异常:类型“ImmutableMap<String, dynamic>”不是类型转换中“List<dynamic>”类型的子类型

List<dynamic> 类型不是 Map<String dynamic> 类型的子类型

“String”类型不是“List<String>”类型的子类型

Flutter StreamProvider 'List<dynamic>' 不是类型转换中类型 'List<??>' 的子类型

List<dynamic>' 不是类型转换中类型 'List<Obj>' 的子类型

类型“List<Object?>”不是类型转换中“List<>”类型的子类型