由于其类型,参数 'id' 不能具有 'null' 的值,但隐式默认值为 'null'

The parameter 'id' can't have a value of 'null' because of its type, but the implicit default value is 'null'

我正在学习具有以下代码的 Flutter 教程,但代码在我的计算机上无法运行,我不知道如何修复它:

import 'package:flutter/foundation.dart';

class CartItem {
  final String id;

  CartItem({
    @required this.id,
  });
}

但是我遇到了这样的错误:

The parameter 'id' can't have a value of 'null' because of its type, but the implicit default value is 'null'.
Try adding either an explicit non-'null' default value or the 'required' modifier.dartmissing_default_value_for_parameter
{String id}

您有几个选项取决于您自己的项目...

选项 1: 使 id 可为空,您可以保留 @required 或将其删除。

class CartItem {
  final String? id;

  CartItem({
    this.id,
  });
}

Option2:给id一个默认值(非空)

class CartItem {
  final String id;

  CartItem({
    this.id="",
  });
}

更多内容在此

您可以将 @required this.id 替换为 required this.id

最新的 dart 版本现在支持声音 null safety。该教程必须使用旧版本。

要表明一个变量的值可能为 null,只需添加 ?到它的类型声明:

class CartItem {
  final String? id = null;
  CartItem({
     this.id,
   });
  } 

class CartItem {
  final String? id;
  CartItem({
     this.id,
   });
  } 
class City {
  int id;
  String name;
  String imageUrl;
  bool isPopular;

  City(
      {required this.id,
      required this.name,
      required this.imageUrl,
      required this.isPopular});
}