flutter - 颤振:在 null 上调用了方法“地图”
问题描述
问题出在这一行:
...(mapsystem[perguntaid]['respostas'] as List<String>)
.map((resposta) {
return Resposta(respondendo, resposta);
}).toList()
“Resposta”是其他文件中的一个小部件,它返回一个凸起的按钮,但这不是问题而且,它在问题输出中没有给出错误,只是在我运行应用程序时在模拟器中
import 'package:flutter/material.dart';
import './pergunta.dart';
import './resposta.dart';
void main() {
runApp(App());
}
class App extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return AppState();
}
}
class AppState extends State<App> {
double score = 0;
var perguntaid = 0;
void respondendo() {
setState(() {
perguntaid = perguntaid + 1;
});
score = score + 0.5;
print(score);
}
@override
Widget build(BuildContext context) {
var mapsystem = [
{
'Tema': 'Memória',
'repostas': [
'Não há perda de memória óbvia. Apenas alguns esquecimentos que não fazem diferença',
'Esquecimento leve e regular de eventos (Esquece compromissos, repete perguntas, etc)',
'Perda de memória de leve a moderada, esquece de eventos recentes, o que atrapalha atividades diárias',
'Perda de memória moderada a severa, informações recentes são rapidamente esquecidas e lembra custa um significante esforço',
'Perda de memória severa, quase impossível lembrar novas informações, e memórias passadas podem estar afetadas'
],
},
{
'Tema': 'Orientação',
'repostas': ['1', '2', '3', '4', '5'],
},
{
'Tema': 'Tomada de decisões e resolução de problemas',
'repostas': ['1', '2', '3', '4', '5'],
},
{
'Tema': 'Atividades fora de casa',
'repostas': ['1', '2', '3', '4', '5'],
},
{
'Tema': 'Habilidades em casa e Hobbies',
'repostas': ['1', '2', '3', '4', '5'],
},
{
'Tema': 'Hábitos de Higiene pessoal',
'repostas': ['1', '2', '3', '4', '5'],
},
{
'Tema': 'Mudanças de comportameto e personalidade',
'repostas': ['1', '2', '3', '4', '5'],
},
{
'Tema': 'Habilidades de linguagem e comunicação',
'repostas': ['1', '2', '3', '4', '5'],
},
{
'Tema': 'Humor',
'repostas': ['1', '2', '3', '4', '5'],
},
{
'Tema': 'Atenção e Concentração',
'repostas': ['1', '2', '3', '4', '5'],
},
];
return MaterialApp(
home: Scaffold(
appBar: AppBar(
backgroundColor: Colors.black,
title: Text('Memory Mate'),
),
body: Column(
children: [
Pergunta(
mapsystem[perguntaid]['Tema'],
),
...(mapsystem[perguntaid]['respostas'] as List<String>)
.map((resposta) {
return Resposta(respondendo, resposta);
}).toList()
],
),
),
);
}
}
这是屏幕中错误的图片:
解决方案
在您的数据中,您拥有 key repostas
,而在错误行上您respostas
使用额外的“s”编写。只需更改为mapsystem[perguntaid]['repostas']
.
推荐阅读
- c# - 如何使 VSCode 显示 c# 的对象和方法定义中的所有可用方法?
- r - 如何使用 dplyr 计算总非 na 值?
- xslt - if then else 或 when-otherwise 的 XSLT 语法
- google-sheets - 如何对 Google 表格中的整个列使用 IF 语句?
- azure - 不使用 FTP 将文件从构建代理复制到应用服务
- linphone - 当手机收到来电时,Linphone 通话被搁置
- android - 使用共享首选项登录 kotlin 时出错
- reactjs - 如何将状态传递给路由器组件?
- azure - Azure 存储是否允许路径遍历?
- django - Django CMS CSS 样式