我正在尝试将对象与用户输入的字符串进行比较。该对象来 self 映射的 json api 响应。 我收到“如果”的错误:
MaterialButton(
child: Text("Connect"),
textColor: Colors.black,
onPressed: (){
fetchUser().then((user)=> (if user.username == username){
return Get.toNamed('/home');
});
},
color: Colors.grey[350],
)
这里是函数
Future <User>fetchUser() async{
var authresponse = await http.get(userCall);
if (authresponse.statusCode == 200){
var jsondata = jsonDecode(authresponse.body);
final data = apicallFromJson(jsondata);
var user = data.subsonicResponse.user;
return user;
}else{
throw Exception("Unable to connect to server, try again");}
}
``
最佳答案
看起来这是一个简单的语法错误。我在这里更正了您的代码。
MaterialButton(
child: Text("Connect"),
textColor: Colors.black,
onPressed: (){
fetchUser().then((user){
if(user.username == username){
return Get.toNamed('/home');
}
});
},
color: Colors.grey[350],
)
编辑 1
深入研究,当创建 .then() 时,它是这样的,
onPressed: (){
fetchUser().then((value) => null);
},
这里是你犯错的地方。 => 指向一个函数。因此,当您将函数放在那里时,它应该只是这样的函数名称,
onPressed: (){
fetchUser().then((value) => myfunctions());
},
但是如果你在那里写函数应该是这样的,
onPressed: (){
fetchUser().then((value){
//your code
});
},
关于json - flutter Dart "Expected an identifier"& "Expected to find ' )'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62222486/