💨
This expression has a type of 'void' so its value can't be used.
発生した問題
- 対象のコード
var _result = await createAccount(result.user!.uid);
if(_result == true) {
result.user!.sendEmailVerification();
Navigator.push(context, MaterialPageRoute(
builder: (context) => CheckEmailPage(
email: emailController.text,
pass: passController.text
)
));
}
Future<void> createAccount(String uid) async {
String imagePath = await FunctionUtils.uploadImage(uid, image!);
Account newAccount = Account(
id: uid,
name: nameController.text,
userId: userIdController.text,
selfIntroduction: selfIntroductionController.text,
imagePath: imagePath,
);
var _result = await UserFirestore.setUser(newAccount);
return _result;
}
- エラーメッセージ
This expression has a type of 'void' so its value can't be used.
上から1行目, 2行目の_resultに赤線が引かれ、上記のエラーメッセージが出現していました。
解決策
_resultにカーソルを当てて、型を調べてみると、void型でした。
そこで上記のコードのFuture<void>の部分をFuture<dynamic>に変えました。
Future<void> createAccount(String uid) async {
String imagePath = await FunctionUtils.uploadImage(uid, image!);
Account newAccount = Account(
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Future<dynamic> createAccount(String uid) async {
String imagePath = await FunctionUtils.uploadImage(uid, image!);
Account newAccount = Account(
すると、エラーを消すことができました。
単純なミスでした。
Discussion