Скопируйте с помощью метода, не обновляя полеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Скопируйте с помощью метода, не обновляя поле

Сообщение Anonymous »

Я пытаюсь обновить две строки в класс одновременно в Flutter/Dart. Он обновляет только один из них, другой продолжает быть нулевым событием, думая, что копия с помощью метода является правильной, и все остальные способы сделать это тоже правильны. Входящее значение также действительнее.

Код: Выделить всё

  child: CupertinoDatePicker(
maximumDate: DateTime.now(),
initialDateTime: selectedDate,
mode: CupertinoDatePickerMode.date,
onDateTimeChanged: (DateTime dateTime) {
setState(() {
selectedDate = dateTime;
_calculateAge(dateTime);
log('Selected date: ${dateTime.toIso8601String()}');
final utcString = dateTime.toUtc().toIso8601String();
widget.onInfoUpdated(
(widget.userProfileData ?? UserProfileData()).copyWith(
ageText: age.toString(),
dateOfBirth: utcString,
),
);
});
},
),
),
the dateofbirth также является строкой? в классе userprofiledata , а параметр определяется в методе Copywith . Он продолжает оставаться нулевым, даже если DateTime действителен.

Код: Выделить всё

class UserProfileData {
final String? ageText;
final String? dateOfBirth;

UserProfileData({this.ageText, this.dateOfBirth});

UserProfileData copyWith({
String? ageText,
String? dateOfBirth,
}) {
return UserProfileData(
ageText: ageText ?? this.ageText,
dateOfBirth: dateOfBirth ?? this.dateOfBirth,
);
}
}
< /code>
Это тот класс, который вы ищете. Если бы я поместил два журнала для Agetextext и DateOfbirth одновременно, я бы по какой-то причине получил NULL в текст DateOfbirth.log('Updated age=$age, dob=$utcString');
предоставит правильную дату в UTCString , но если бы я сделал widget.userprofiledata.dateofbirth . Это дало бы мне NULL событие, будучи widget.userProfileData.ageText - это правильное значение, которое было рассчитано.

Подробнее здесь: https://stackoverflow.com/questions/796 ... ng-a-field
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»