gpt4 book ai didi

flutter - 如何将参数传递给路由?

转载 作者:IT王子 更新时间:2023-10-29 07:16:52 24 4
gpt4 key购买 nike

我尝试将参数“_difficulty”从“第一页”传递到“第二页”,但我不明白该怎么做:此参数是一个字符串,表示难度模式(简单、普通、困难)

首页:当用户点击按钮时,OnPressed 被调用

onPressed: () {
Navigator.pushNamed(context, '/gamepage', arguments: _difficulty);
},

第二页此调用接收参数以显示值

 import 'package:flutter/material.dart';

class GamePage extends StatelessWidget {
final String difficultyMode;
GamePage(this.difficultyMode);

@override
Widget build(BuildContext context) {

final GamePage args = ModalRoute.of(context).settings.arguments;

return Scaffold(
body: new Container(
child: SingleChildScrollView(
child: Text(args.difficultyMode)
)
),
);
}
}

在 main.dart 中:我使用 onGenerateRoute: _getRoute,

Route _getRoute(RouteSettings settings) {
switch (settings.name){
case '/':
return _buildRoute(settings, new Homepage());
case '/credits':
return _buildRoute(settings, new Credits());
case '/gamepage':
return _buildRoute(settings, new GamePage(diffculty));
default:
return null;
}
}

最佳答案

您可以通过 RouteSettings 获取参数。

您可以像这样访问它:

case '/gamepage':
String difficulty = settings.arguments;
return _buildRoute(settings, new GamePage(difficulty));

希望对您有所帮助!

关于flutter - 如何将参数传递给路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57102593/

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