#flutter #flutter-layout
Вопрос:
Я новичок в флаттере , я добавил текучий код, и флаттер предложил добавить позже, я добавил late Timer _timer;
после того, как он показал мне следующую ошибку
Ошибка латинизации: Поле «_timer@137128430» не было инициализировано.
есть какое-нибудь решение для этого? Спасибо
код здесь
late Timer _timer;
int _start = 60;
//start timer
void startTimer() {
const oneSec = const Duration(seconds: 1);
_timer = new Timer.periodic(
oneSec,
(Timer timer) {
if (_start == 0) {
setState(() {
timer.cancel();
});
} else {
setState(() {
_start--;
});
}
},
);
}
@override
void initState() {
super.initState();
startTimer();
}
@override
void dispose() {
_timer.cancel();
super.dispose();
}
Комментарии:
1. Не воспроизводимо. Я скопировал код и запустил то же самое на dartpad и его работе.
2. @RohanThacker Привет , приятель, я использовал безопасную версию flutter Null
3. То же самое здесь, этот код выглядит нормально
4. @Ты уверен ? 🙁 но там нет работы
5. Да, вы пытались перезапустить приложение?
Ответ №1:
Пожалуйста, позвоните в startTimer() перед super.initState() в initState. Как показано ниже
@переопределение
пустота в состоянии инициализации() {
startTimer();
super.initState();
}
Ответ №2:
Используйте Timer? _timer;
вместо late Timer _timer;