Il y a beaucoup d'explications de fluro sur Internet, mais du fait du changement de version, il y a plus ou moins de changements. La version de fluro que j'ai enregistrée est :
flux : ^1.7.8
1. Nouvelle application.dart
import 'package:fluro/fluro.dart'; class Application{ static FluroRouter router; }
2. Créez un nouveau route_handlers.dart
fichier
//不传参 var rootHandler = Handler( handlerFunc: (BuildContext context, Map<String, List<String>> params) { return LoginPage();//跳转界面 });
//传参 var secondHandler = Handler( handlerFunc: (BuildContext context, Map<String, List<String>> params) { //暂时挖坑 参数从何而来 后面添上 String goodsId = params['goodsId'].first; String goodsName = params['goodsName'].first; String mList = params['goodsList'].first; return SecondPage( id: goodsId, name: goodsName, goodsList: mList, ); })
3. Créer de nouveauxroutes.dart
// Écrivez le nom et le chemin avec désinvolture, le principe est que vous devez le comprendre vous-même
class Routes { //配置类 static String root = '/'; //根目录 static String secondPage = '/pages/second'; //详情页面 //静态方法 static void configureRoutes(FluroRouter router){//路由配置 //找不到路由 router.notFoundHandler = new Handler( handlerFunc: (BuildContext context,Map<String,List<String>> params){ print('ERROR====>ROUTE WAS NOT FONUND!!!'); } ); //整体配置 router.define(root, handler: rootHandler); router.define(secondPage, handler: secondHandler); } }
4. Configuration initiale
Code dans main.dart
void main() { runApp(AppComponent()); }
Code dans AppComponent
import 'package:fluro/fluro.dart'; import 'package:flutter/material.dart'; import 'package:flutter_renting/routers/application.dart'; import 'package:flutter_renting/routes.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; class AppComponent extends StatefulWidget { @override _AppComponentState createState() => _AppComponentState(); } class _AppComponentState extends State<AppComponent> { _AppComponentState() { final router = FluroRouter(); //路由初始化 Routes.configureRoutes(router); Application.router = router; } @override Widget build(BuildContext context) { return MaterialApp( title: "title", theme: ThemeData( primarySwatch: Colors.green, ), onGenerateRoute: Application.router.generator, );//这一步是重点 配置上 } }
comment utiliser
1. Pas de saut de paramètre
Application.router.navigateTo(context, Routes.secondPage);
// Routes.secondPage est la deuxième étape à l'intérieur
2. Il y a des paramètres pour sauter et remplir la fosse
Application.router.navigateTo(context, +"${Routes.secondPage}?goodsId=id00303" "&goodsName=${Uri.encodeComponent('黄瓜')}" //额外知识 如果要穿的内容是汉字 需要这样传 Uri.encodeComponent('黄瓜') "&goodsList=${convert.jsonEncode(date)}");
Seuls ceux-ci sont utilisés pour le moment et seront ajoutés ultérieurement. Si vous avez des questions, veuillez nous en informer.