Flutter 吸气剂';出生日期';在null上调用了。接收方:null尝试调用:dateOfBirth

Flutter 吸气剂';出生日期';在null上调用了。接收方:null尝试调用:dateOfBirth,flutter,dart,Flutter,Dart,我试图通过设置state值来使用日历小部件,但发现以下错误: The following NoSuchMethodError was thrown building CustomerForm(dirty, dependencies: [_LocalizationsScope-[GlobalKey#e6983], _InheritedTheme], state: CustomerFormState#fc7d8): The getter 'dateOfBirth' was called on nul

我试图通过设置state值来使用日历小部件,但发现以下错误:

The following NoSuchMethodError was thrown building CustomerForm(dirty, dependencies: [_LocalizationsScope-[GlobalKey#e6983], _InheritedTheme], state: CustomerFormState#fc7d8):
The getter 'dateOfBirth' was called on null.
Receiver: null
Tried calling: dateOfBirth
这是我设置状态的方式:

  Widget buildBirthday() => BirthdayWidget(
      birthday: customer.dateOfBirth,
      onChangedBirthday: (dateOfBirth) => setState(
            () => customer.dateOfBirth = dateOfBirth,
          ));
客户模型应该是这样的:

import 'package:regform/db/database_provider.dart';

class Customer {
  int id;
  int imei;
  String firstName;
  String lastName;
  DateTime dateOfBirth;
  String passportNo;
  String email;
  String customerPhoto;

  Customer({
    this.id,
    this.firstName,
    this.lastName,
    this.dateOfBirth,
    this.passportNo,
    this.email,
    this.customerPhoto,
  });

  Map<String, dynamic> toMap() {
    var map = <String, dynamic>{
      DatabaseProvider.COLUMN_IMEI: imei,
      DatabaseProvider.COLUMN_FIRST_NAME: firstName,
      DatabaseProvider.COLUMN_LAST_NAME: lastName,
      DatabaseProvider.COLUMN_DOB: dateOfBirth,
      DatabaseProvider.COLUMN_PASSPORT_NO: passportNo,
      DatabaseProvider.COLUMN_EMAIL: lastName,
      DatabaseProvider.COLUMN_CUSTOMER_PHOTO: customerPhoto,
    };

    if (id != null) {
      map[DatabaseProvider.COLUMN_ID] = id;
    }

    return map;
  }

  Customer.fromMap(Map<String, dynamic> map) {
    id = map[DatabaseProvider.COLUMN_ID];
    imei = map[DatabaseProvider.COLUMN_IMEI];
    firstName = map[DatabaseProvider.COLUMN_FIRST_NAME];
    lastName = map[DatabaseProvider.COLUMN_LAST_NAME];
    dateOfBirth = map[DatabaseProvider.COLUMN_DOB];
    passportNo = map[DatabaseProvider.COLUMN_PASSPORT_NO];
    email = map[DatabaseProvider.COLUMN_EMAIL];
    customerPhoto = map[DatabaseProvider.COLUMN_CUSTOMER_PHOTO];
  }
}

这是因为当您试图访问其属性
dateofBirth
时,
customer
变量仍然是
null
。您需要创建一个
Customer
对象,并首先将其分配给变量

final Customer customer = Customer();

请添加如何实例化客户的代码class@SimonSot
最终客户由于这一点,它现在可以正常工作:)
final Customer customer;
final Customer customer = Customer();