路由註冊到頂層,使每一個頁面均可以使用,註冊到頂層就須要在main.dart中app
onGenerateRoute是MaterialApp自帶的路由配置項,less
import '../routers/application.dart';
_wrapList火爆專區的商品,點擊進行跳轉ide
那麼這個/detail是在哪裏定義的呢?看下圖,是在routers.dart中配置的測試
而後再傳id過去ui
id在路由的這個地方配置的spa
咱們details商品頁自己也是比較簡單的,就顯示了接收的商品的goodsIddebug
import 'package:flutter/material.dart'; import './pages/index_page.dart'; import 'package:provide/provide.dart'; import './provide/counter.dart'; import './provide/child_category.dart'; import './provide/category_goods_list.dart'; import 'package:fluro/fluro.dart'; import './routers/routers.dart'; import './routers/application.dart'; void main(){ var counter=Counter(); var childCategory=ChildCategory(); var categoryGoodsListProvide=CategoryGoodsListProvide(); var providers=Providers(); //final router=Router();//Router就是咱們的Fluro //註冊 依賴 providers ..provide(Provider<Counter>.value(counter)) ..provide(Provider<CategoryGoodsListProvide>.value(categoryGoodsListProvide)) ..provide(Provider<ChildCategory>.value(childCategory)); runApp(ProviderNode(child: MyApp(),providers: providers,)); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { final router=Router();//Router就是咱們的Fluro Routes.configurreRoutes(router);//註冊router Application.router=router;//靜態化 return Container( child:MaterialApp( title:'百姓生活+', onGenerateRoute: Application.router.generator, debugShowCheckedModeBanner: false, theme: ThemeData( primaryColor: Colors.pink ), home: IndexPage(), ) ); } }
home_page.dart頁面主要一行代碼,路由跳轉的代碼:3d
Application.router.navigateTo(context, '/detail?id=${val['goodsId']}');