Home > Mobile >  The operator '>' can't be unconditionally invoked because the receiver can be 
The operator '>' can't be unconditionally invoked because the receiver can be 

Time:12-24

          itemCount: (widget.userbio.resimler?.length!=null) ? 0:(widget.userbio.resimler?.length!>9)?9:widget.userbio.resimler?.length,

error:

error: The operator '>' can't be unconditionally invoked because the receiver can be 'null'. (unchecked_use_of_nullable_value at [ui_profile_instagram] lib\pages\profile.dart:220)

hello how to fix this error ?

widget.userbio.resimler?.length!>9

ı need compare

CodePudding user response:

The short answer is to change it to widget.userbio.resimler!.length!.

The long answer is to introduce a local variable. Something like:

final l = widget.userbio.resimler?.length;

You can then test l for null and the compiler will know that after you've tested it, it can't be null. (Note this only works for local variables - hence why you should add one.)

if (l != null) {/* in this block l cannot be null*/}

so

final l = widget.userbio.resimler?.length;
itemCount: l == null ? 0 : l > 9 ? 9 : l;

Best of all user a null aware operator:

var l = widget.userbio.resimler?.length ?? 0;
if (l > 9) l = 9;
  • Related