这是单独文件中的类
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'没有实例获取器'body'。接收方:“未来”的实例尝试调用:正文
检查是否有效:
import 'package:sms/sms.dart';
class SmsReader {
SmsMessage sms;
Future<dynamic> messageRead() async {
SmsReceiver receiver = await SmsReceiver();
receiver.onSmsReceived.listen((SmsMessage msg) {
sms = msg;
});
return sms;
}
}
class _HomePageState extends State<HomePage> {
SmsReader smsReader = SmsReader();
dynamic sms;
@override
void initState() {
sms = smsReader.messageRead().then((data) => ...);
super.initState();
}
进行更改
Future<dynamic> messageRead() async {
SmsReceiver receiver = SmsReceiver();
receiver.onSmsReceived.listen((SmsMessage msg) {
sms = msg;
});
return sms;
}
和
smsReader.messageRead().then((value) => print(value.toString()));
让我知道它是否有效。