当我通过API登录时,我将获得值User_id,我可以在控制台上打印该值,但我想在另一个屏幕上使用该值。那么,如何将数据发送到另一个屏幕?//第一屏
Future postMethod() async {
var api = Uri.parse("https://demo.likemyfiles.com/DS/api/auth/otp");
Map mapeddate = {
'phone': _phone.text,
'otp': _otp.text,
};
final response = await http.post(api, body: mapeddate);
print(response.body);
var res = json.decode(response.body);
print(res['user_id']);
Navigator.pushNamed(context, StartActivity.id); //here i want to send the User_Id
}
//第二个屏幕(开始活动(在这个屏幕中有一个函数FetchData,我想在那里使用数据
Future fetchdata() async {
var url = await http.get(Uri.parse(
"http://demo.likemyfiles.com/DS/api/api_supervisor/supervisor/3")); //Instead of 3 i want
to use the User_Id variable
}
您应该尝试声明构造函数第一页接受id并将此id推到第二页或屏幕,如下代码为第一页
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ABC.withId(
id,
),
),
)
在第二页屏幕内创建构造函数
class ABC extends StatefulWidget {
@override
_ABCState createState() => _ABCState();
var id;
ABC.withId(String uid) {
id = uid;
}
}
使用小部件在小部件内接受您的id。id