簡體   English   中英

如何在 flutter 中通過 2 個 Arguments?

[英]How to pass 2 Arguments in flutter?

我想將 2 arguments 傳遞給我的 MainPage() 這是我的代碼:

final String NumID = ModalRoute.of(context).settings.arguments.toString();
                    final IDNum = NumID.toString();
                    final SmsCode = _controller.text;
                    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) {
                      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: resaultOfFeture,
                          ),
                        ));

除了 resaultOfFeture,我也想傳遞 NumID。 任何想法?

您可以將 map 作為參數傳遞:

var args= {'resaultOfFeture': resaultOfFeture ,'anotherThing':'otherValue'}; 

settings: RouteSettings(arguments: args),

在另一個屏幕上,您可以獲得以下值:

var data = ModalRoute.of(context).settings.arguments;

var result = data['resaultOfFeture'];

Navigator 的“ arguments ”參數接受 object,因此您可以傳遞包含 resaultOfFeture 和 NumID 的 object,例如,

arguments: {'res': resaultOfFeture, id: NumID ,}

或者您也可以定義一個包含這兩個字段的 class 作為其成員,然后傳遞此 object。 在您的 MainPage 中,您可以使用ModalRoute.of(context)..settings.arguments檢索它們

請參考: https://flutter.dev/docs/cookbook/navigation/navigate-with-arguments#1-define-the-arguments-you-need-to-pass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM