我是新手。我正在开发一个测验应用程序,并拥有以下三个dart文件:
主要的飞奔
import 'package:flutter/material.dart';
import './answer.dart';
import './question.dart';
void main(){
runApp(MyApp());
}
class MyApp extends StatefulWidget {
State<StatefulWidget> createState(){
return _MyAppState();
}
}
class _MyAppState extends State<MyApp>{
var _questionIndex = 0;
_answerQuestion(){
setState(() {
_questionIndex = _questionIndex + 1;
});
}
@override
Widget build(BuildContext context) {
var questions = [
{'questionText': 'What\'s your favourite color ?',
'answers': ['Red','Blue','White','Black']
},
{'questionText': 'What\'s your favourite Animal ?',
'answers': ['Dog','Rabbit','Tiger','Monkey']
},
{'questionText': 'What\'s your favourite Day ?',
'answers': ['Tuesday','Monday','Sunday','Friday','Wednesday','Saturday']
},
];
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My First App'),
),
body: Column(
children: [
Question(questions[_questionIndex]['questionText'] as String,
),
...(questions[_questionIndex]['answers'] as List).map((answer) {
return Answer(_answerQuestion(),answer);
}).toList()
],
)
),
);
}
}
question.dart
import 'package:flutter/material.dart';
class Question extends StatelessWidget {
final String questions;
Question(this.questions);
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
margin: EdgeInsets.all(10),
child:(
Text(
questions,
style: TextStyle(
fontSize: 25),
textAlign: TextAlign.center,)
),
);
}
}
answer.dart
import 'package:flutter/material.dart';
class Answer extends StatelessWidget {
final Function buttonHandler;
final String answer;
Answer(this.buttonHandler,this.answer);
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
child: ElevatedButton(
child: Text(answer),
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.blue),
foregroundColor: MaterialStateProperty.all(Colors.white)
),
onPressed: () => buttonHandler,
),
);
}
}
当我在android studio中的android上运行应用程序时,出现以下错误:
══╡ 小部件库捕获的异常╞═══════════════════════════════════════════
生成MyApp时引发了以下类型的错误(脏,状态:_MyAppState#7f7de):
类型“Null”不是类型“Function”的子类型。
导致错误的相关小部件是:
MyAppfile:///C:/src/first_app/lib/main.dart:7:10
您的代码运行良好,尝试清理颤振
首先,您必须传递一个函数结构,而不是通过调用它从函数中返回值。
您在下面声明了此函数:
_answerQuestion(){
setState(() {
_questionIndex = _questionIndex + 1;
});
}
并传递返回值而不是函数结构,如下所示:
return Answer(_answerQuestion(),answer);
如您所见,_answerQuestion()的返回值为Null。像这样更改您的代码。
return Answer(_answerQuestion,answer);
你需要调用Answer组件中的函数。
onPressed: buttonHandler
或
onPressed: () => buttonHandler()
这:
onPressed: () => buttonHandler,
需要是:
onPressed: buttonHandler,
或
onPressed: () => buttonHandler(),
取决于处理程序是否与所需的签名完全匹配。
此外,这:
return Answer(_answerQuestion(),answer);
需要
return Answer(_answerQuestion,answer);
一般来说,你已经混合调用一个方法和传递一个方法作为参数几次了,你可能想更熟悉它。
我得到了这个错误:类型'String'不是获取方法flutter中类型'Null'的子类型 这是我使用的get api函数 您可以在此处看到检测数据的功能 我也看到了这个错误 StateError(错误状态:已侦听流。) 而这个错误 这是我做的模型
在存储到本地数据库之前,将字符串转换为对象的正确方法是什么? 这是的输出: 我试图将其转换为CreatedBy对象 创造的 这里是我的本地表列 错误
我正在开发一个依靠API REST调用的flutter应用程序。来自API的响应有点复杂。当调用我的API(例如:api/产品)时,我可以从日志中看到响应:但是我有这个错误: 类型列表 StackTrace: [更新]:退货产品响应。fromJson(response)而不是response ProductsRespository: ProductsBloc: 回应: ApiProvider: 模
我是个新手。当我运行代码时,我得到一个错误:“Future”类型不是“List”类型的子类型。如果我改变屏幕,我将得到错误:NoSuchMethodError:方法“map”被调用为null。我怎样才能解决它?谢谢你帮助我。
我从Firestore示例中复制了一段代码: 但是我得到了这个错误 这里出了什么问题?