声明时出错:应为1个位置参数,但找到0个.请尝试添加缺少的参数



我正试图从welcomepage导航到屏幕选项卡,但由于上述错误而无法导航。

欢迎屏幕的一部分。dart

class WelcomePage extends StatelessWidget {
static const routeName = '/welcome-screen';
const WelcomePage({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
color: Colors.black,
child: Stack(
children: [
Positioned.fill(
child: Opacity(
opacity: 0.3,
child: Image.asset('assets/images/of_main_bg.png', fit: BoxFit.cover),
),
),

ThemeButton(
label: "Get Started!",
labelColor: AppColors.MAIN_COLOR,
color: Colors.transparent,
highlight: AppColors.MAIN_COLOR.withOpacity(0.5),
borderColor: AppColors.MAIN_COLOR,
borderWidth: 4,
onPressed: ()  {Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return TabsScreen(**ERROR**#What should I write here);
},
),


主要路线。dart

initialRoute: '/', // default is '/'
routes: {
'/': (ctx) => WelcomePage(),
CategoryMealsScreen.routeName: (ctx) => CategoryMealsScreen(_availableMeals),
MealDetailScreen.routeName: (ctx) => MealDetailScreen(_toggleFavorite, _isMealFavorite),
FiltersScreen.routeName: (ctx) => FiltersScreen(_filters, _setFilters),
TabsScreen.routeName: (ctx) => TabsScreen(_favoriteMeals),
WelcomePage.routeName: (ctx) => WelcomePage(),
},

tabscreen.dart中的类代码

class TabsScreen extends StatefulWidget {
static const routeName = '/tabs-screen';
final List<Meal> favoriteMeals;
TabsScreen(this.favoriteMeals);

我应该如何从welcomepage导航到tabs_screen页面?为了导航到相同的位置,我应该在welcome_screen.dart中的ERROR位置写些什么。如果有其他导航方法,请告知。

不要使用命名路由。

发件人https://docs.flutter.dev/cookbook/navigation/named-routes

注意:大多数应用程序不再推荐使用命名路由。有关更多信息,请参阅导航概述页面中的限制。

您的TabsScreen构造函数正在接受位置参数。您可以在那里传递空列表([](。但对我来说,用可为null的数据创建名称构造函数似乎更好

class TabsScreen extends StatefulWidget {
static const routeName = '/tabs-screen';
final List<Meal>? favoriteMeals;
TabsScreen({ this.favoriteMeals});

现在它是可选的,您可以传递类似TabsScreen(favoriteMeals: yourData)的列表,当您不想传递TabsScreen()时可以跳过。

有关使用构造函数的更多信息

相关内容

  • 没有找到相关文章

最新更新