繁体   English   中英

ib/main.dart:49:24:错误:未为 class 'Set 定义运算符'[]' <map<string, object> &gt;' </map<string,>

[英]ib/main.dart:49:24: Error: The operator '[]' isn't defined for the class 'Set<Map<String, Object>>'

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:错误:未为 class 'Set<Map<String, Object>>' 定义运算符“[]”。 - 'Set' 来自 'dart:core'。 - “地图”来自“飞镖:核心”。 - “对象”来自“飞镖:核心”。 尝试将运算符更正为现有运算符,或定义“[]”运算符。 问题[_questionIndex]['questionText'], ^ 未能 package /Users/j3rry01/Documents/Flutter Lab/flutter basics /new_flutter. 命令 PhaseScriptExecution 失败,退出代码为非零注释:使用新的构建系统注释:计划注释:构建准备完成注释:并行构建目标警告:签名和功能的功能可能不正确,因为其权利使用占位符团队 ID。 为了解决这个问题,select 开发团队在 Runner 编辑器中。 (在项目“Runner”的目标“Runner”中)

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

从错误消息看来, 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM