我是顫振的初學者,我嘗試做一個基本的測驗型別應用程式,其中包含下面給出的代碼。
import 'package:flutter/material.dart';
import './question.dart';
import './answer.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return MyAppState();
}
}
class MyAppState extends State<MyApp> {
var questionNo = 0;
Widget build(BuildContext context) {
void questionchange() {
setState(() {
questionNo = questionNo 1;
});
print('Answer 1 is selected');
}
const questions = [
{
'QuesionText': 'What is your favourite color',
> 'AnswerText': ['Red', 'Blue', 'Violet', 'Green'],
},
{
'QuestionText': 'What is your favourite animal',
'AnswerText': ['Tiger', 'Lion', 'Elephant', 'Rabbit'],
},
{
'QuesionText': 'What is your favourite Country',
'AnswerText': ['Rwanda', 'Netherland', 'USA', 'India'],
}
];
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('My first app'),
),
body: Column(
children: [
Questions(questions[questionNo]['QuestionText'] as String),
...(questions[questionNo]['AnswerText'] as List<String>)
.map((answer) {
return Answers(questionchange, answer);
}).toList(),
],
),
),
);
}
}
import 'package:flutter/material.dart';
class Questions extends StatelessWidget {
final String quest;
Questions(this.quest);
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(20),
width: double.infinity,
child: Text(
quest,
textAlign: TextAlign.center,
style: TextStyle(fontSize: 26),
));
}
}
import 'package:flutter/material.dart';
class Questions extends StatelessWidget {
final String quest;
Questions(this.quest);
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(20),
width: double.infinity,
child: Text(
quest,
textAlign: TextAlign.center,
style: TextStyle(fontSize: 26),
));
}
}
當我嘗試運行它時,應用程式螢屏正在顯示
type 'Null' is not a subtype of type 'String' in type cast在紅色背景。
此外,除錯控制臺顯示為引起 MyApp 小部件和行的相關錯誤Questions(questions[questionNo]['QuestionText'] as String)。
誰能告訴我是什么導致了這個錯誤。
uj5u.com熱心網友回復:
您的輸入有誤:
const questions = [
{
'QuesionText': 'What is your favourite color',
'AnswerText': ['Red', 'Blue', 'Violet', 'Green'],
},
{
'QuestionText': 'What is your favourite animal',
'AnswerText': ['Tiger', 'Lion', 'Elephant', 'Rabbit'],
},
{
'QuesionText': 'What is your favourite Country',
'AnswerText': ['Rwanda', 'Netherland', 'USA', 'India'],
}
];
因為你寫的是“QuestionText”而不是“QuestionText”,它應該是:
const questions = [
{
'QuestionText': 'What is your favourite color',
'AnswerText': ['Red', 'Blue', 'Violet', 'Green'],
},
{
'QuestionText': 'What is your favourite animal',
'AnswerText': ['Tiger', 'Lion', 'Elephant', 'Rabbit'],
},
{
'QuestionText': 'What is your favourite Country',
'AnswerText': ['Rwanda', 'Netherland', 'USA', 'India'],
}
];
那是因為當你在這里閱讀它時:
Questions(questions[questionNo]['QuestionText'] as String),
它會給你一個空錯誤。
uj5u.com熱心網友回復:
您的兩把鑰匙有錯字;替換'QuesionText'為'QuestionText'.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451803.html
