On Wrap l'ensemble de l'application de sorte à ce que l'etat de l'objet soit conscervé dans toute l'application On Warap generalement le matérialApp . ScopModel prend un child où l'on va mettre le Widget MaterialApp ensuite on instancie le model qui va parcourir toute l'application
class _MyApp extends State<MyApp> {
_MyApp() {
print("_MyApp constructeur");
}
@override
Widget build(BuildContext context) {
print("_MyApp build");
return ScopedModel<ProductsModel>(
model: ProductsModel(),
child: MaterialApp(
// debugShowMaterialGrid: true,
theme: ThemeData(
primaryColor: Colors.red,
// brightness: Brightness.dark,
accentColor: Colors.orange,
primarySwatch: Colors.deepPurple),
// home: AuthPage(),
routes: {
'/': (BuildContext context) => AuthPage(),
'/products': (BuildContext context) =>
ProductsPage(),
'/admin': (BuildContext context) => AdminProductPage()
},
onGenerateRoute: (RouteSettings settings) {
List<String> patchElement = settings.name.split('/');
if (patchElement[0] != "") {
return null;
}
if (patchElement[1] == "product") {
int index = int.parse(patchElement[2]);
return MaterialPageRoute<bool>(
builder: (BuildContext context) => ProductPage(index)
);
}
return null;
},
onUnknownRoute: (RouteSettings settings) {
return MaterialPageRoute(builder: (BuildContext context) {
return null;
});
},
),
);
}
}