Flutter ChangeNotifierProviderビルダーは廃止予定


12

私のmain.dartにこのコードがあります:

main() {
  runApp(
    MultiProvider(
      providers: [
        ChangeNotifierProvider(builder: (context) => Auth()), // /**problem here. builder displayed with strikethrough line**/
      ],
      child: App(),
    ),
  );
}

約2日前から、この警告を表示する私のビジュアルスタジオコード:

ここに画像の説明を入力してください

そのため、ChangeNotifierProviderのビルダーパラメータは廃止されていると思います。私はどこでも検索しましたが、このビルダーパラメーターの代わりを見つけることができません。では、これらの警告を削除するにはどうすればよいですか?以下は、flutter --versionWindows 10でコマンドを使用する私のフラッターバージョンです

> 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
ToolsDart 2.5.0

どんな助けでも、事前に感謝します

回答:


31

プロバイダーバージョン3.2.0以降、「ビルダー」は「作成」を支持して非推奨としてマークされています。

詳細は変更ログで確認できます

だから行う必要があります:

ChangeNotifierProvider(create: (context) => Auth())

8

create as builderで渡すことができます。

    return Provider<MyProvider>(
        create: (context) => MyProvider(

        ),
        child: HomePage(),
    );

お返事ありがとうございます。彼の説明が明確であるので、私は@Nuts'答えを選ぶ
DIKA

4

「ビルダー」の代わりに「作成」を使用できます

main() {
 runApp(
   MultiProvider(
     providers: [
       ChangeNotifierProvider(create: (context) => Auth()), // /**problem here. 
builder displayed with strikethrough line**/
     ],
     child: App(),
   ),
 );

}


既存の回答に何も追加されないため、回答を削除してください。@Tabrizapps
DIKA

1

Builderパラメーターの代わりに、Product()またはIndexの特定の製品でcreate paramを使用できます。

itemBuilder: (ctx, i) => ChangeNotifierProvider(
        create: (context) => products[i],
        child:  ProductItem(),
      ), 

または、バリューバージョンとして使用できます。

itemBuilder: (ctx, i) => ChangeNotifierProvider.value(
        value: products[i],
        child:  ProductItem(),
      ),
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.