不能无条件调用运算符,因为接收者可以为空
Operator can't be unconditionally invoked because the receiver can be null
我正在尝试向我的应用程序添加购物功能。我正在尝试使用 ChangeNotifier 添加购物车商品计数器,但收到错误消息 'error: The operator '-' can't be unconditionally invoked because the receiver can be 'null'。我是编码新手,所以即使在研究了 SO 之后我也无法找到解决方案。在此先感谢您提供的任何帮助。
class EcommerceApp {
static late SharedPreferences sharedPreferences;
static String collectionUser = "users";
static String collectionOrders = "orders";
static String userCartList = 'userCart';
static String subCollectionAddress = 'userAddress';
class CartItemCounter extends ChangeNotifier {
final int _counter = EcommerceApp.sharedPreferences
.getStringList(EcommerceApp.userCartList)
?.length - 1;
int get count => _counter;
}
}
getStringList()
的return值有可能是null
。 Dart 的 Null-safety 不允许这样做。您可以使用 ??
运算符来确保另一个值是 null
。我认为这可能有效:
class CartItemCounter extends ChangeNotifier {
final int _counter = (EcommerceApp.sharedPreferences
.getStringList(EcommerceApp.userCartList)
.length ?? 0) - 1;
int get count => _counter;
}
我正在尝试向我的应用程序添加购物功能。我正在尝试使用 ChangeNotifier 添加购物车商品计数器,但收到错误消息 'error: The operator '-' can't be unconditionally invoked because the receiver can be 'null'。我是编码新手,所以即使在研究了 SO 之后我也无法找到解决方案。在此先感谢您提供的任何帮助。
class EcommerceApp {
static late SharedPreferences sharedPreferences;
static String collectionUser = "users";
static String collectionOrders = "orders";
static String userCartList = 'userCart';
static String subCollectionAddress = 'userAddress';
class CartItemCounter extends ChangeNotifier {
final int _counter = EcommerceApp.sharedPreferences
.getStringList(EcommerceApp.userCartList)
?.length - 1;
int get count => _counter;
}
}
getStringList()
的return值有可能是null
。 Dart 的 Null-safety 不允许这样做。您可以使用 ??
运算符来确保另一个值是 null
。我认为这可能有效:
class CartItemCounter extends ChangeNotifier {
final int _counter = (EcommerceApp.sharedPreferences
.getStringList(EcommerceApp.userCartList)
.length ?? 0) - 1;
int get count => _counter;
}