[Flutter / error] CupertinoDatePicker 'this.initialDateTime.minute % minuteInterval == 0': initial minute is not divisible by minute interval)

solra·2022년 3월 22일
0

CupertinoDatePicker에서 분단위를 지정하는 경우 아래와 같이 작성하게 되면

CupertinoDatePicker(
   initialDateTime: DateTime.now(),
   minimumDate: DateTime.now().subtract(Duration(minutes: 1)), 
   maximumDate: DateTime.utc(2025, 12, 31),
   minuteInterval: 5,
   onDateTimeChanged: (dateTime) {
   _temp = dateTime;
  },
),

아래와 같은 오류가 발생합니다.

'this.initialDateTime.minute % minuteInterval == 0': initial minute is not divisible by minute interval)

CupertinoDatePicker minuteInterval(분 단위)를 지정하는 경우 initialDateTime(초기 시간)이 minuteInterval(분 단위) 배수가 아닌 경우에 이 오류가 발생하는데요.

아래처럼 초기 시간을 분 단위로 딱 떨어지게 나눠서 대입해주면 됩니다.

DateTime initialDateTime = DateTime.now();
if (initialDateTime.minute % 5 != 0) {
  int initialMinute = 5 - initialDateTime.minute % 5;
  initialDateTime = initialDateTime.add(Duration(minutes: initialMinute));
}
...
CupertinoDatePicker(
   initialDateTime: initialDateTime,
   minimumDate: DateTime.now().subtract(Duration(minutes: 1)), 
   maximumDate: DateTime.utc(2025, 12, 31),
   minuteInterval: 5,
   onDateTimeChanged: (dateTime) {
   _temp = dateTime;
  },
),
                        
profile
현 Flutter 개발자 🥴

0개의 댓글