gpt4 book ai didi

android - 'Future' has no instance getter ' body' 错误,当试图在 Flutter 中访问 Future SmsMessage 变量的主体时

转载 作者:行者123 更新时间:2023-12-03 04:46:51 26 4
gpt4 key购买 nike

这是单独文件中的一个类

import 'package:sms/sms.dart';

class SmsReader {
SmsMessage sms;
dynamic messageRead() async {
SmsReceiver receiver = SmsReceiver();
receiver.onSmsReceived.listen((SmsMessage msg) {
sms = msg;
});
return sms;
}
}

此文件是创建对象并调用 func 的位置
class _HomePageState extends State<HomePage> {

SmsReader smsReader = SmsReader();
dynamic sms;

@override
void initState() {
sms = smsReader.messageRead();
super.initState();
}

现在当我尝试 print(sms.body) ,出现此错误

'Future' 类没有实例 getter 'body'。
接收者:“ future ”的实例
尝试调用:body

最佳答案

您正在定义 messageRead作为:

dynamic messageRead() async {

全部 async函数应该返回 Future ,您返回 dynamic它定义了“这里的每个类型都可以”。

稍后您调用 messageRead没有 await ,所以它只返回一个 Future .您需要将代码更改为 await messageRead :

Future<SmsMessage> messageRead() async {

...

SmsMessage sms;

...

smsReader.messageRead().then((newSms) => sms = newSms);

您需要使用 then而不是 await因为你不能 await里面 initState功能。

关于android - 'Future<dynamic >' has no instance getter ' body' 错误,当试图在 Flutter 中访问 Future SmsMessage 变量的主体时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62138972/

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