当前位置: 首页 > 知识库问答 >
问题:

如何解决flutter中传递参数的问题?

梁盛
2023-03-14

我想从'get codepage'传递2个参数到'mainpage',然后我出现了这个错误。这是我的getCodePage我传递参数的部分:

onTap: (){
                    final String NumID = ModalRoute.of(context).settings.arguments.toString();
                    final SmsCode = _controller.text;
                    final IDNum = NumID.toString();
                    final url = 'https://***********/api/User/$IDNum?sms=$SmsCode';
                    Future fetchSMS() async {
                      final response = await http.get(url);
                      if (response.statusCode == 200) {
                        return jsonDecode(response.body);
                      } else {
                        throw Exception('Failed');
                      }
                    }
                    fetchSMS().then((resaultOfFeture) {
                      final args = {
                        'rof' : resaultOfFeture,
                        'idNum' : IDNum, 
                      };
                      if(resaultOfFeture == true){
                        final snackBar = SnackBar(content: Text('با موفقیت وارد شدید',
                          textAlign: TextAlign.center,
                          style: TextStyle(
                              color: Colors.white,
                              fontFamily: "IranSans",
                              fontSize: 18
                          ),
                        ),
                        );
                        ScaffoldMessenger.of(context).showSnackBar(snackBar);
                        Navigator.of(context).push(MaterialPageRoute(
                          builder: (context) => MainPage(),
                          settings: RouteSettings(
                            arguments: args
                          ),
                        ));

                      }else{
                        final snackBar1 = SnackBar(content: Text('کد اشتباه وارد شده',
                          textAlign: TextAlign.center,
                          style: TextStyle(
                              color: Colors.white,
                              fontFamily: "IranSans",
                              fontSize: 18
                          ),
                        ),
                        );
                        ScaffoldMessenger.of(context).showSnackBar(snackBar1);
                      }
                    });

                  },

当我想将参数作为对象时,这是我的主页:

final logedUser = ModalRoute.of(context).settings.arguments;
    final data = logedUser['rof'];

那么这里有一个错误:没有为类型“object”flutter error定义运算符“[]”

共有1个答案

微生信鸿
2023-03-14

尝试初始化在DidChangeDependencies中传递给MainPage的参数

类似这样的东西

mainpage.dart


class MainPage extends StatefulWidget {
  static const route = "/main-page";
  @override
  _MainPageState createState() => _MainPageState();
}

class _MainPageState extends State<MainPage> {


  var args;
  var data; 

  @override
  void didChangeDependencies() async {
    if (args != ModalRoute.of(context).settings.arguments) {
      args = ModalRoute.of(context).settings.arguments;
      data = args["rof"]; 
    }

    super.didChangeDependencies();
  }

  @override
  Widget build(BuildContext context) {
    ...

 类似资料:
  • 本文向大家介绍解决Python传递中文参数的问题,包括了解决Python传递中文参数的问题的使用技巧和注意事项,需要的朋友参考一下 今天有个需要需要传递中文参数给URL 但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误。烦的很。 所以我们果断选择用urlencode来处理中文, 由于国内外网站编码不同,国内是GBK的,国外是UTF8的。 这样我就得到了GBK的url编码,

  • 我得到以下findbugs错误: “方法调用为非null参数传递null:为getApiStatus(ApiResponse)的非null参数传递null” 如果CallApi方法中的apiResponse为null(为了简洁起见,这里没有显示),它只会抛出一个异常,该异常在HandLeapIEException中被捕获,如果我们不能对该异常执行任何其他操作,它会再次抛出。 在这段代码片段的基础上

  • 我有一个颤振按钮的问题,因为按下它不会产生任何事件,我想不出任何方法来修复它。 代码: 代码: 错误: 手势捕获异常处理手势时引发了以下断言:使用不包含导航器的上下文请求的导航器操作。 用于从导航器推送或弹出路由的上下文必须是导航器小部件的后代小部件的上下文。当抛出异常时,这是堆栈:#0 Navigator.of.(包: flutter/src/小部件/navigator.dart:2711: 9

  • 我在onCreate中创建的SQLite数据库中有三个表。我没有数据记录,只需要查询表进行计算并显示在屏幕上。这是我需要做的sql来获取我需要的3个变量。sql只返回一条记录不是列表。 Rawquery研究并认为这是最好的解决方案,但不知道如何运行sql,当我将这些参数传递给sql并获得我需要的三个变量时,是否有人能向我详细解释一下,以便我能够理解并应用到这里?

  • 这个问题的解决方案是什么?问题在这里,代码在这里: > 列表项 在BindViewHolder上公开无效(@nonNull HolderOrderShop持有人,int位置){ //转换时间日历=日历。getInstance();日历setTimeInMillis(Long.parseLong(orderTime));String formattedate=DateFormat。格式(“日/月/年

  • 问题内容: 在我正在写的打印函数中,我试图根据switch语句的结果返回一个值;但是,我得到的错误太多,无法返回。 如果这个问题的答案很简单,请原谅我,但是函数有多少个参数可以返回一件事就不应该吗?还是需要为每个参数返回一件事。 这是我的代码。我在返回行上收到错误(返回的参数过多)。如何修复它,使其返回在switch语句中设置的字符串? 问题答案: 您需要指定输入参数后返回的内容,这不是pytho