Я пытаюсь проверить поле даты во Флаттере, но получаю эту ошибку:
При обработке жеста было выдвинуто следующее утверждение:
I / flutter (6785): Неудачное утверждение: логическое выражение не должно быть нулевым
Row(
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
children: <Widget>[
RaisedButton(
highlightElevation: 8,
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(8.0),
),
child: Text(
selectedYear != null
? selectedYear.toString()
: "Age Checker",
style: TextStyle(
color: Colors.orange),
),
onPressed: _showPicker,
),
Container(
width: 120,
child: AnimatedBuilder(
animation: animation,
builder: (context, child) => FormField(
builder:
(FormFieldState state) {
return InputDecorator(
decoration: InputDecoration(
labelText: 'You Are '
"${animation.value.toStringAsFixed(0)}",
errorText: state.hasError
? state.errorText
: null,
),
isEmpty: selectedYear == '',
);
}, validator: (selectedYear) => selectedYear ? null: 'rawr',
),
),
),
],
),
Вот мои методы, помогающие рассчитать возраст и валидатор для подтверждения возраста.
void calculateAge() {
setState(() {
age = (2018 - selectedYear).toDouble();
animation = Tween<double>(begin: animation.value, end: age).animate(
CurvedAnimation(
curve: Curves.fastOutSlowIn, parent: animationController));
animationController.forward(from: 0.0);
});
print(age);
if (age < 21){
ageChecker();
} else{
}
}
bool isValidDob (String dob) {
if (dob.isEmpty) возвращает true;
}
Я хочу подтвердить, что пользователю больше 21, прежде чем перейти к следующему экрану. Пожалуйста, дайте мне знать, где я ошибся.