【发布时间】:2023-02-14 01:01:38
【问题描述】:
我试图在我的 initstate 中调用异步函数并且我成功了,问题是与它通常所做的不同,构建是在 initstate 之前执行的。 这是我的代码,当然它给了我一个错误,因为后期变量在构建之前没有分配:
late int oraNotifiche;
late int minutiNotifiche;
aggiornaImpostazioni() async {
final prefs = await SharedPreferences.getInstance();
await checkNotificheCalendario();
int timestap = await prefs.getInt("oraNotifiche") ??
DateTime(DateTime.now().year, DateTime.now().month,
DateTime.now().day - 1, 19, 0)
.millisecondsSinceEpoch;
DateTime orarioSalvato = DateTime.fromMillisecondsSinceEpoch(timestap);
oraNotifiche = orarioSalvato.hour;
minutiNotifiche = orarioSalvato.minute;
if (!mounted) return;
setState(() {});
}
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) async {
await aggiornaImpostazioni();
});
}
【问题讨论】:
-
您可以使用 FutureBuilder
-
使您的状态可为空。
-
这回答了你的问题了吗? What is a Future and how do I use it?
标签: flutter