【问题标题】:ib/main.dart:49:24: Error: The operator '[]' isn't defined for the class 'Set<Map<String, Object>>'ib/main.dart:49:24:错误:未为类“Set<Map<String, Object>>”定义运算符“[]”
【发布时间】:2022-01-11 04:12:53
【问题描述】:
import 'package:flutter/material.dart';
import './question.dart';
import './answer.dart';

void main() {
  runApp(MyFirstApp());
}

class MyFirstApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return _MyFirstAppState();
  }
}

class _MyFirstAppState extends State<MyFirstApp> {
  var _questionIndex = 0;
  void _ansButtonPress() {
    setState(() {
      _questionIndex = _questionIndex + 1;
    });
  }

  var questions = [
    {
      'questionText': 'What is  your favorate Colour',
      'answers': ['red', 'balck ', 'yellow', 'blue']
    },
    {
      'questionText': 'What is  your favorate Animal',
      "answers": ['Lion', 'Chettah ', 'Leopard', 'Cat']
    },
    {
      'questionText': 'What is  your favorate Movie',
      'answers': ['hai', 'hello ', 'hoe', 'are you']
    }
  ];

  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('My first app '),
        ),
        body: Column(
          children: [
            Question(
              questions[_questionIndex]['questionText'],
            ),
            Answer(_ansButtonPress),
            Answer(_ansButtonPress),
            Answer(_ansButtonPress),
          ],
        ),
      ),
    );
  }
}

第 49 行错误

终端显示如下

lib/main.dart:49:24:错误:未为 类'设置>'。 - 'Set' 来自 'dart:core'。 - “地图”来自“飞镖:核心”。 - “对象”来自“飞镖:核心”。 尝试将运算符更正为现有运算符,或定义“[]”运算符。 问题[_questionIndex]['questionText'], ^ 打包 /Users/j3rry01/Documents/Flutter Lab/flutter 基础知识/new_flutter 失败。 命令 PhaseScriptExecution 失败,退出代码非零 注意:使用新的构建系统 注:规划 注意:构建准备完成 注意:并行构建目标 警告:签名和功能的功能可能无法正常运行,因为其权利使用占位符团队 ID。到 解决这个问题,选择一个 Runner 编辑器中的开发团队。 (在项目“Runner”的目标“Runner”中)

我是初学者,对飞镖概念不太了解,我的 POV 上没有看到任何错误

【问题讨论】:

  • var questions 是一个 List 所以如果你想要一个问题,它必须是一个数字或第一个最后一个等等。比如 questions.first 或 questions[1][_questionIndex]['questionText' ]

标签: ios flutter dart e


【解决方案1】:

从错误消息看来,questions 变量被视为Set 而不是List。尝试像这样显式设置其类型:

List<Map<String, dynamic>> questions = [
    {
      'questionText': 'What is  your favorate Colour',
      'answers': ['red', 'balck ', 'yellow', 'blue']
    },
    {
      'questionText': 'What is  your favorate Animal',
      "answers": ['Lion', 'Chettah ', 'Leopard', 'Cat']
    },
    {
      'questionText': 'What is  your favorate Movie',
      'answers': ['hai', 'hello ', 'hoe', 'are you']
    }
];

此外,如果您不打算更改 questions 变量的值,最好将其声明为 final

【讨论】:

  • 这是一个新的更新吗,因为教程视频中的那个家伙刚刚使用了“var questions = [”,在这个改变之后现在它工作了谢谢兄弟
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 1970-01-01
  • 2022-01-05
  • 2021-09-10
  • 1970-01-01
  • 2020-03-05
  • 2014-04-27
相关资源
最近更新 更多