如何使用全局变量Flutter



如何在dart/flutteer中使用全局变量?

class UserPage extends StatefulWidget {
// UserPage({Key key}) : super(key: key);
final int userId; //my variable
UserPage({@required this.userId});
@override
UserPageState createState() => UserPageState();
}

我想在url 中使用这个变量作为方法中的参数

Future<User> getCurrentUser() async {
var url = 'http://10.0.2.2:80/user/';
var response = await http.get(url);
print(response.statusCode);
if (response.statusCode == 200) {
var userJson = json.decode(response.body);
print(userJson);
return User.fromJson(json.decode(response.body));
} else {
print('dupa');
// throw Exception('Failed to load post');
}
}

如果你想访问状态类方法中的实例变量,你可以使用widget.variableName。所以在这里你可以使用widget.userId,你可以定义你的url如下:

Future<User> getCurrentUser() async {
var url = 'http://10.0.2.2:80/user/${widget.userId}';
var response = await http.get(url);
print(response.statusCode);
if (response.statusCode == 200) {
var userJson = json.decode(response.body);
print(userJson);
return User.fromJson(json.decode(response.body));
} else {
print('dupa');
// throw Exception('Failed to load post');
}
}

您可以使用状态类中可用的widget变量

在您的情况下,您可以使用访问用户ID

Future<User> getCurrentUser() async {
var url = 'http://10.0.2.2:80/user/{widget.userid}';
var response = await http.get(url);
print(response.statusCode);
if (response.statusCode == 200) {
var userJson = json.decode(response.body);
print(userJson);
return User.fromJson(json.decode(response.body));
} else {
print('dupa');
// throw Exception('Failed to load post');
}
}

最新更新