运算符 '>=' 不能无条件调用,因为接收器可以为 'null'。颤振空安全

时间:2021-07-12 10:46:43

标签: flutter dart

我有以下代码

 if (myCart?.cart?.cartDetails != null &&
    myCart?.cart?.cartDetails!
            .indexWhere((element) => element.productId == productId)  >=
        0) {
  return true;
}

此代码在 ">=" 部分出现错误,表示它可以为空。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

indexWhere 在您的情况下可以返回 null,并且 >= 运算符不能与 null 值一起使用。试试下面的代码:

final index = myCart?.cart?.cartDetails
    ?.indexWhere((element) => element.productId == productId);

if (index != null && index >= 0) {
  return true;
}

答案 1 :(得分:0)

我认为这是因为 element.productId 可以为 null。 你能试试 element.productId 吗! == productId 还是 element.productId? == 产品 ID