import 'package:flutter/material.dart';
import 'Questao.dart';
import 'Resposta.dart';
main() => runApp(PerguntaApp());
class _PerguntaAppState extends State<PerguntaApp> {
var _perguntaSelecionada = 0;
_responder() {
setState(() {
_perguntaSelecionada++;
});
print(_perguntaSelecionada);
}
@override
Widget build(BuildContext context) {
final List<Map<String, Object>> perguntas = [
{
"texto": "Qual e a sua cor favorita?",
"resposta": ["Azul", "Preto", "Vermelho", "Verde"],
},
{
"texto": "Qual e o seu animal favorito?",
"resposta": ["Baleia", "Leao", "Cobra", "Elefante"],
},
{
"texto": "Qual e o seu instructor favorito?",
"resposta": ["Maria", "Joao", "Leo", "Atila"],
}
];
var respostas = [];
for(String textResp in perguntas[_perguntaSelecionada]["resposta"]) {
respostas.add(Resposta(textResp,_responder));
}
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Perguntas"),
),
body: Column(
children: <Widget>[
Questao(perguntas[_perguntaSelecionada]["texto"]),
...respostas,
],
)));
}
}
class PerguntaApp extends StatefulWidget {
_PerguntaAppState createState() {
return _PerguntaAppState();
}
}
伙计们,我无法理解我做错了什么,perguntas[_perguntaSelecionada]["texto"]
中有一条巨大的红线,我就是不明白为什么,它们之间没有逗号,在变量 {{1 }}一切都很好(据我所知)但它仍然在说
'需要 2 个位置参数,但找到 1 个。 尝试添加缺少的参数。'
我到底做错了什么?
这里也是widget Questao的构造函数:
perguntas
答案 0 :(得分:0)
问题出在 Questao(arg1, arg2)
构造函数中,错误提示构造函数需要两个参数,但您只提供一个参数。
答案 1 :(得分:0)
修复您的 Questao
类
class Questao extends StatelessWidget {
final String texto;
Questao({this.texto});
现在这样称呼
Questao(texto: perguntas[_perguntaSelecionada]["texto"].toString()),
如果你想传递两个参数,那么像这样修复你的 Questao 类
class Questao extends StatelessWidget {
final String texto;
final List<String> list;
Questao({this.texto, this.list});