[英]How to retry a request on GraphQLError in graphql_flutter
[英]graphql_flutter mutation query expects return statement - not sure how to add it
builder 方法上的變異查詢需要返回語句,我不確定在何處以及如何將其添加到以下代碼中。 我相信變異查詢應該返回操作的通過或失敗。
在過去的幾天里,我一直在努力解決這個問題。 我仍然不知道出了什么問題。
我有這個方法,當用戶填寫一次性代碼時,它會在 onCompleted 回調上調用。
createUser 突變查詢 -
class GraphQlMutations {
final String createUser = r'''
mutation createUser($uid: ID!, $fullname: String!, $phone: String!, $photourl: String, $createdtime: String){
createUser(uid: $uid, fullname: $fullname, phone: $phone, photourl: $photourl, createdtime: $createdtime){
uid
fullname
phone
photourl
createdtime
}
}
''';
}
void signInWithPhoneAuthCredential(
PhoneAuthCredential phoneAuthCredential) async {
setState(() {
showLoading = true;
});
try {
setState(() {
showLoading = false;
});
final authCredential =
await _auth.signInWithCredential(phoneAuthCredential);
User? user = authCredential.user;
print(user);
if (authCredential.user != null) {
Mutation(
options: MutationOptions(
document: gql(GraphQlMutations().createUser),
onCompleted: (dynamic resultData) {
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text('New user added')));
}),
builder: (RunMutation createUser, QueryResult? result) {
if (user != null) {
final DateTime? createdTime = user.metadata.creationTime;
final DateFormat formatter = DateFormat('yyyy-MM-dd');
final String userCreatedTime = formatter.format(createdTime!);
try {
createUser({
'uid': user.uid,
'fullname': _fullname.text,
'phone': user.phoneNumber,
'photourl': 'https://www.bol.com',
'createdtime': userCreatedTime,
});
Navigator.pushReplacement(context,
MaterialPageRoute(builder: (context) => Conversations()));
} catch (e) {}
}
},
);
}
}
}
Vscode 指出了 builder 方法的一個錯誤,它確切地說 -
正文可能會正常完成,從而導致返回 'null',但返回類型可能是不可為 null 的類型。 嘗試在
請在 graphq_flutter 方面具有專業知識的人提供幫助。
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.