Flutter:我无法将地图对象的键值调用为String

问题描述

我正在学习教程,但现在由于无法调用键值而陷入困境。

这是我的 main.dart 脚本:

import 'package:flutter/material.dart';
import 'package:first_app/question.dart';
import './answer.dart';


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

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

class MyAppsState extends State<MyApps> {
  int indexQuestion = 0;

  void answerQuestion() {
    setState(() {
      indexQuestion += 1;
    });
    if (indexQuestion > 1) {
      indexQuestion = 1;
    }
    print('add index by 1');
  }

  void resetIndex() {
    setState(() {
      indexQuestion = 0;
    });
    print('Reset to 0');
  }

  var a = 'as';

  Widget build(BuildContext context) {
    var questions = [
      {
        'questionText': 'What\'s your favorite animal?','answers': ['cat','dog','elephant','fish'],},{
        'questionText': 'What\'s your favorite color?','answers': ['red','green','blue','black'],{
        'questionText': 'Who\'s your favorite actor?','answers': ['D\'Caprio','Tony Hawk','Scarlet','J-Low'],];

    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(
            title: Text('My First App Yo!'),),body: Column(
            children: [
// ========================ERROR HERE========================
              Question(
                questions[indexQuestion]['questionText'],//===========================================================
              Text('indexQuestion = $indexQuestion'),Answer(answerQuestion),RaisedButton(
                child: Text('Answer 3'),onPressed: () {
                  print('Anonymus function is pressed!');
                },RaisedButton(
                child: Text('Answer 4'),onPressed: answerQuestion,RaisedButton(
                child: Text('Reset'),onPressed: resetIndex,Container(
                color: Colors.amber,width: 50,height: 50,margin: EdgeInsets.all(10),Center(
                child: SetGo(),],)),);
  }
}

这是 question.dart 文件,需要在“问题”行中添加参数:

    import 'package:flutter/material.dart';

class Question extends StatelessWidget {
  final String questionText;

  Question(this.questionText);

  // Question({String questionTextoption}) {
  //   questionText = questionTextoption;
  // }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text(
        'aaa $questionText',style: TextStyle(fontSize: 28),textAlign: TextAlign.center,maxLines: 1,width: double.infinity,);
  }
}

错误在此行:

Question(
                questions[indexQuestion]['questionText'],

这是错误: 不能将参数类型“ Object”分配给参数类型“ String”。

enter image description here

该值将在其他文件的其他函数中称为String。 有人可以帮我解决这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)