flutter - LateInitializationError: 字段 'roast' 尚未初始化
问题描述
我正在尝试构建一个颤振应用程序以在特定的硬编码“烘焙”值之间随机选择,并将它们添加到位于卡片中的 listtile 中。我有三个不在任何类中的变量,这样我就可以在每个小部件和函数中访问它们。然后我试图在一个函数中为其分配一个值,但是当我运行应用程序时,我得到了错误:
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following LateError was thrown building MyHomePage(dirty, state: _MyHomePageState#8da4b):
LateInitializationError: Field 'roast' has not been initialized.
有谁知道我能做什么?
这是一些代码 -
T getRandomElement<T>(List<T> list) {
final random = new Random();
var i = random.nextInt(list.length);
return list[i];
}
getElement() {
var element = getRandomElement(roastList);
var randRoast = [
roastList[element.id].roast,
];
var randAuthor = [
roastList[element.id].author,
];
var randCategory = [roastList[element.id].category];
roast = randRoast.toString();
author = randAuthor.toString();
category = randCategory.toString();
}
烤的例子 -
Roast(
10 (id) ,
'roast',
'author of roast',
RoastCategory.category),
我的主页 -
late String roast;
late String author;
late String category;
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Roast'),
centerTitle: true,
backgroundColor: Colors.red,
),
body: Center(
child: Column(
children: [
Card(
child: Row(
children: [
ListTile(
title: Text(roast),
subtitle: Text(author),
)
],
),
),
ElevatedButton(
onPressed: () {
getElement();
},
child: Text('print')),
],
)),
);
}
}
解决方案
推荐阅读
- python - FPDF Emoji Star 问题
- wcf - System.Security.Cryptography.CryptographicException:使用配置的 WCF 客户端证书身份验证指定的提供程序类型无效
- c# - 如果它们以任何方式交叉,则比较两个 DateTime .TimeOfDay。ASP C#
- sqlalchemy - SQLAlchemy:根据列值有条件地在表中创建关系
- .htaccess - 如何在不禁止访问其文件的情况下使用 htaccess 禁用对文件夹的访问?
- javascript - 在 Javascript 中解析 Promise 数组
- linux - 将系统上所有 git 存储库的远程从 http 更改为 ssh
- java - Android Volley 为什么 JsonObjectRequest 不调用 onResponse
- powerbi - Power BI 中的条件转换数据
- javascript - 通过 viewBox 操作 svg