簡體   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