El generador de Flutter ChangeNotifierProvider está en desuso


12

Tengo este código en mi main.dart:

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

desde hace aproximadamente 2 días, mi código de estudio visual que muestra esta advertencia:

ingrese la descripción de la imagen aquí

así que supongo que el parámetro del generador en ChangeNotifierProvider está en desuso. Busqué en todas partes pero no puedo encontrar una alternativa a este parámetro del generador. Entonces, ¿cómo eliminar estas advertencias? A continuación se muestra mi versión de flutter usando el flutter --versioncomando en Windows 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

Para cualquier ayuda, gracias de antemano

Respuestas:


31

Desde la versión 3.2.0 del proveedor, "constructor" está marcado como obsoleto a favor de "crear".

Más información se puede encontrar en el registro de cambios

Entonces debería hacer:

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

8

puede pasar con crear como generador.

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

        ),
        child: HomePage(),
    );

Gracias por su respuesta. pero elijo la respuesta de @Nuts porque su descripción es más clara
Dika

4

puedes usar "crear" en lugar de "constructor"

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

}


elimine su respuesta, porque su respuesta no agrega nada a las respuestas existentes. @Tabrizapps
Dika

1

En lugar del parámetro generador, puede usar create param con Product () o producto específico en Index.

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

O puede usarse como versión Value:

itemBuilder: (ctx, i) => ChangeNotifierProvider.value(
        value: products[i],
        child:  ProductItem(),
      ),
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.