gpt4 book ai didi

dart - Flutter:从其他文件提供“映射到路线”选项

转载 作者:行者123 更新时间:2023-12-03 03:26:10 25 4
gpt4 key购买 nike

我在这里有点茫然。

    return MaterialApp(
title: 'App Title',
theme: ThemeData(brightness: Brightness.dark),
initialRoute: '/',
routes: SOMETHING_HERE,
);

我想从其他文件中推送SOMETHING_HERE,但似乎无法在其中推送正确的值。

其他文件(尝试):
import '../screens/home.dart';
import '../screens/charts.dart';

class Routes {

factory Routes(context) {
Map<String, Widget Function(BuildContext)> _routes;
_routes = {
'/': (context) => ScreenHome(),
'/charts': (context) => ScreenCharts(),
};
return _routes;
}

}

这不起作用,因为它说: The argument type 'Routes' can't be assigned to the parameter type 'Map<String, (BuildContext) → Widget>'
当然,我可以将Map传递给此参数,但是我想在一个单独的文件中定义路线。

关于如何做到这一点的任何建议?

最佳答案

我只是遇到了同样的问题并找到了解决方案。

您无需创建类,只需创建一个与您的路线var相等的Map
main.dart:

import 'package:flutter/material.dart';
import './custom_routes.dart';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(brightness: Brightness.dark),
initialRoute: '/',
routes: customRoutes,
);
}
}

custom_routes.dart:
import 'package:flutter/material.dart';
import '../screens/home.dart';
import '../screens/charts.dart';

var customRoutes = <String, WidgetBuilder>{
'/': (context) => ScreenHome(),
'/charts': (context) => ScreenCharts(),
};

关于dart - Flutter:从其他文件提供“映射到路线”选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56119620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com