내 main.dart 에이 코드가 있습니다.
main() {
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(builder: (context) => Auth()), // /**problem here. builder displayed with strikethrough line**/
],
child: App(),
),
);
}
약 2 일 전부터 내 Visual Studio 코드가이 경고를 표시합니다.
그래서 ChangeNotifierProvider의 빌더 매개 변수가 더 이상 사용되지 않는 것 같습니다. 나는 모든 곳을 검색했지만이 빌더 매개 변수의 대안을 찾을 수 없습니다. 그렇다면 이러한 경고를 제거하는 방법은 무엇입니까? 아래는 flutter --version
Windows 10에서 명령을 사용하는 flutter 버전입니다.
> flutter --version
Flutter 1.9.1+hotfix.6 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 68587a0916 (3 months ago) • 2019-09-13 19:46:58 -0700
Engine • revision b863200c37
Tools • Dart 2.5.0
도움이 필요하면 미리 감사드립니다.
답변
프로 바이더 버전 3.2.0부터 “builder”는 “create”를 위해 더 이상 사용되지 않는 것으로 표시됩니다.
자세한 정보는 변경 로그 에서 찾을 수 있습니다
그렇게해야합니다 :
ChangeNotifierProvider(create: (context) => Auth())
답변
create as builder로 전달할 수 있습니다.
return Provider<MyProvider>(
create: (context) => MyProvider(
),
child: HomePage(),
);
답변
“builder”대신 “create”를 사용할 수 있습니다
main() {
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => Auth()), // /**problem here.
builder displayed with strikethrough line**/
],
child: App(),
),
);
}
답변
빌더 매개 변수 대신 Product () 또는 Index에서 특정 제품 과 함께 create param을 사용할 수 있습니다 .
itemBuilder: (ctx, i) => ChangeNotifierProvider(
create: (context) => products[i],
child: ProductItem(),
),
또는 Value 버전으로 사용할 수 있습니다.
itemBuilder: (ctx, i) => ChangeNotifierProvider.value(
value: products[i],
child: ProductItem(),
),