sdk_version_ui_as_code 진단: SDK 버전 제약에 맞지 않는 UI 요소
sdk_version_ui_as_code 진단: SDK 버전 제약에 맞지 않는 UI 요소
for, if, spread 요소는 2.3.0 버전부터 지원됐는데요, 이 코드는 더 이른 버전의 SDK에서도 실행될 수 있어야 해요.
본문
설명
분석기는 SDK 제약 조건(constraint)의 하한(bound)이 2.3.0보다 낮은 코드에서 for, if, spread 요소를 발견하면 이 진단을 만들어요. for, if, spread 요소는 이전 버전에서는 지원되지 않았기 때문에, 이 코드는 이전 버전의 SDK에서는 실행할 수 없어요.
예시
다음은 하한이 2.3.0보다 낮은 SDK 제약 조건을 정의한 pubspec 예시예요.
environment:
sdk: '>=2.2.0 <2.4.0'
해당 pubspec을 가진 패키지에서 아래와 같은 코드가 이 진단을 만들게 돼요.
var digits = [for (int i = 0; i < 10; i++) i];
흔한 해결 방법
이전 버전의 SDK를 지원할 필요가 없다면, 해당 문법을 쓸 수 있도록 SDK 제약 조건을 올리면 돼요.
environment:
sdk: '>=2.3.0 <2.4.0'
이전 버전의 SDK를 지원해야 한다면, 그 요소들을 쓰지 않도록 코드를 다시 작성해요.
var digits = _initializeDigits();
List<int> _initializeDigits() {
var digits = <int>[];
for (int i = 0; i < 10; i++) {
digits.add(i);
}
return digits;
}