Flutter 吸气剂';出生日期';在null上调用了。接收方:null尝试调用:dateOfBirth
我试图通过设置state值来使用日历小部件,但发现以下错误: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
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();