Flutter routage saut fluro

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.dartfichier

//不传参
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.

Guess you like

Origin blog.csdn.net/jiexiao4151/article/details/117291903