[英]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
檢索它們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.