gpt4 book ai didi

android - 类型 'Null' 不是类型 'Function' 的子类型

转载 作者:行者123 更新时间:2023-12-05 05:57:37 25 4
gpt4 key购买 nike

我是 Flutter 的新手。我正在构建一个测验应用程序并具有以下三个 Dart 文件:

ma​​in.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()
],
)
),
);
}
}

问题.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 上运行应用程序时,出现此错误:

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY╞═══════════════════════════════════════════
The following _TypeError was thrown building MyApp(dirty, state: _MyAppState#7f7de):
type 'Null' is not a subtype of type 'Function'
The relevant error-causing widget was:
MyApp file:///C:/src/first_app/lib/main.dart:7:10

最佳答案

这个:

onPressed: () => buttonHandler,

需要是:

onPressed: buttonHandler,

onPressed: () => buttonHandler(),

取决于您的处理程序是否与所需的签名完全匹配。

另外,这个:

return Answer(_answerQuestion(),answer);

需要

return Answer(_answerQuestion,answer);

一般来说,您已经多次混淆了调用方法和方法作为参数传递,您可能想要更熟悉它。 p>

关于android - 类型 'Null' 不是类型 'Function' 的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68771077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com