输入 'Router' 而不是 found.Method 未找到:'Router',即使我已导入
Type 'Router' not found.Method not found: 'Router',even I've imported
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart' hide Router;
import 'package:flutter_scaffold/route/router_handler.dart';
final route = Router();
class Routes {
static GlobalKey<NavigatorState> navigatorKey = GlobalKey();
// 路由页面配置
static String root = "/";
static String incrementCounter = '/incrementCounter';
static void configureRoutes(Router router) {
router.define(root, handler: mainHandler);
router.define(Routes.incrementCounter, handler: incrementCounterHandler);
}
当我 运行 flutter 运行 时,出现以下错误
我升级了 fluro ==> fluro: ^2.0.3 支持 null-safety
之前的代码可以运行没有错误。
如果我将 import 'package:fluro/fluro.dart'; import 'package:flutter/material.dart' hide Router;
更改为 import 'package:fluro/fluro.dart'; import 'package:flutter/material.dart';
IDE 找不到路由器
你的
import 'package:flutter/material.dart' hide Router;
行表示您打算 import
来自该特定来源的所有内容 除了 Router
。因此,看不到 Router
是预期的行为。您可能想将其更改为
import 'package:flutter/material.dart';
编辑
原来 Router
已重命名为 FluroRouter
并且代码需要反映这一点并且需要安装它。在约翰 运行
之后
flutter pub get
成功了!
你试过了吗
final router = FluroRouter();
如 https://github.com/lukepighetti/fluro/releases 中所述,路由器 class 自版本 1.7.0 起已被删除,并在稍后由 FluroRouter 取代
试试这个:
import 'package:campus/router/i_router.dart';
import 'package:campus/router/not_found_page.dart';
import 'package:campus/screens/home.dart';
import 'package:campus/screens/webview/webview_router.dart';
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
class Routes {
static String home = '/home';
static final List<IRouterProvider> _listRouter = [];
static final FluroRouter router = FluroRouter();
static void initRoutes() {
/// Specify route jump error return page
router.notFoundHandler = Handler(
handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
debugPrint('init router');
return const NotFoundPage();
});
router.define(home,
handler: Handler(
handlerFunc:
(BuildContext? context, Map<String, List<String>> params) =>
const Home()));
_listRouter.clear();
_listRouter.add(SettingRouter());
void initRouter(IRouterProvider routerProvider) {
routerProvider.initRouter(router);
}
_listRouter.forEach(initRouter);
}
}
然后实施这个
import 'package:fluro/fluro.dart';
abstract class IRouterProvider {
void initRouter(FluroRouter router);
}
如您在 _listRouter.add(SettingRouter());
的第一个代码块中所见
各自的路由由各自的模块管理,
并且这里统一加上初始化。
要实现路由模块,请使用此代码:
import 'package:campus/router/i_router.dart';
import 'package:campus/screens/webview/webview.dart';
import 'package:fluro/fluro.dart';
class SettingRouter implements IRouterProvider {
static String settingPage = '/setting';
static String settingLanguage = '/setting/language';
@override
void initRouter(FluroRouter router) {
router.define(settingPage,
transitionType: TransitionType.fadeIn,
handler: Handler(handlerFunc: (_, __) => const WebView()));
// router.define(settingLanguage,
// handler: Handler(handlerFunc: (_, __) => const LanguageAndLocale()));
}
}
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart' hide Router;
import 'package:flutter_scaffold/route/router_handler.dart';
final route = Router();
class Routes {
static GlobalKey<NavigatorState> navigatorKey = GlobalKey();
// 路由页面配置
static String root = "/";
static String incrementCounter = '/incrementCounter';
static void configureRoutes(Router router) {
router.define(root, handler: mainHandler);
router.define(Routes.incrementCounter, handler: incrementCounterHandler);
}
当我 运行 flutter 运行 时,出现以下错误
我升级了 fluro ==> fluro: ^2.0.3 支持 null-safety
之前的代码可以运行没有错误。
如果我将 import 'package:fluro/fluro.dart'; import 'package:flutter/material.dart' hide Router;
更改为 import 'package:fluro/fluro.dart'; import 'package:flutter/material.dart';
IDE 找不到路由器
你的
import 'package:flutter/material.dart' hide Router;
行表示您打算 import
来自该特定来源的所有内容 除了 Router
。因此,看不到 Router
是预期的行为。您可能想将其更改为
import 'package:flutter/material.dart';
编辑
原来 Router
已重命名为 FluroRouter
并且代码需要反映这一点并且需要安装它。在约翰 运行
flutter pub get
成功了!
你试过了吗
final router = FluroRouter();
如 https://github.com/lukepighetti/fluro/releases 中所述,路由器 class 自版本 1.7.0 起已被删除,并在稍后由 FluroRouter 取代
试试这个:
import 'package:campus/router/i_router.dart';
import 'package:campus/router/not_found_page.dart';
import 'package:campus/screens/home.dart';
import 'package:campus/screens/webview/webview_router.dart';
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
class Routes {
static String home = '/home';
static final List<IRouterProvider> _listRouter = [];
static final FluroRouter router = FluroRouter();
static void initRoutes() {
/// Specify route jump error return page
router.notFoundHandler = Handler(
handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
debugPrint('init router');
return const NotFoundPage();
});
router.define(home,
handler: Handler(
handlerFunc:
(BuildContext? context, Map<String, List<String>> params) =>
const Home()));
_listRouter.clear();
_listRouter.add(SettingRouter());
void initRouter(IRouterProvider routerProvider) {
routerProvider.initRouter(router);
}
_listRouter.forEach(initRouter);
}
}
然后实施这个
import 'package:fluro/fluro.dart';
abstract class IRouterProvider {
void initRouter(FluroRouter router);
}
如您在 _listRouter.add(SettingRouter());
的第一个代码块中所见
各自的路由由各自的模块管理,
并且这里统一加上初始化。
要实现路由模块,请使用此代码:
import 'package:campus/router/i_router.dart';
import 'package:campus/screens/webview/webview.dart';
import 'package:fluro/fluro.dart';
class SettingRouter implements IRouterProvider {
static String settingPage = '/setting';
static String settingLanguage = '/setting/language';
@override
void initRouter(FluroRouter router) {
router.define(settingPage,
transitionType: TransitionType.fadeIn,
handler: Handler(handlerFunc: (_, __) => const WebView()));
// router.define(settingLanguage,
// handler: Handler(handlerFunc: (_, __) => const LanguageAndLocale()));
}
}