flutter: NoSuchMethodError: The getter 'isEmpty' was called on null

Code Hunter picture Code Hunter · Dec 14, 2018 · Viewed 10.1k times · Source

I am calling web API and receiving the Profile model as a response. When I am using the below code then it is throwing me an error:

try{
   if(profile.message.isEmpty){
      Navigator.of(context).pushNamed("/home");
   }else if(profile == null){
      _showDialog("Please check your internet connection");
   }else{
      _showDialog("Please enter valid credentials");
   }
}catch(exception){
   print(exception);
}

Answer

Günter Zöchbauer picture Günter Zöchbauer · Dec 14, 2018

That is because profile.message returns null. You might want

if(profile?.message?.isEmpty ?? true)

? prevents an error if the previous part of the expression results in null and ?? true results in true if the previous part of the expression is null and therefore treats == null and isEmpty the same for the if(...) check.