dart - 如何使用 dart/flutter 在不同的类上使用变量
问题描述
我有一门课,那就是我的 getToken 课。在这个类中,我得到了String token 的 token。这是我的getToken.dart
class GetToken {
String token;
Future<Null> getData() async {
var url = "http://192.168.1.39:7070/api/v2/token";
http.post(url, body: {
"grant_type": "string",
"branchcode": "string",
"password": "string",
"username": "string",
"dbname": "string",
"dbuser": "string",
"dbpassword": "string",
"dbtype": "string"
}).then((response) {
print("Response Status: ${response.statusCode}");
//print("Response Body: ${response.body}");
print('access token is -> ${json.decode(response.body)['access_token']}');
token = json.decode(response.body)['access_token'];
});
}
}
我想在我的 getCari 类中使用这个令牌并在我的 rest api 中获取 Json 值。这是我的getCari.dart课程
class GetCari{
getCari() async {
final response = await http.get("http://192.168.1.39:7070/api/v2/ARPs",
headers: {HttpHeaders.AUTHORIZATION: token});
if(response.statusCode ==200){
return Cari.fromJson(json.decode(response.body));
}else{
throw Exception("Failed to Load");
}
}
}
我想问一下如何在我的 getCari.dart 类中使用我的令牌(从 getToken.dart 获得)。我如何将令牌变量传递给其他类?
解决方案
您可以使用get_it 之类的服务管理器在应用程序的任何位置重用值。
创建将保存您的共享信息的类
class GetToken{ String token; ... }
在你的 main.dart 文件中,设置你的 GetIt 实例
final getIt = GetIt.instance; void setup() { getIt.registerSingleton<GetToken>(GetToken()); }
现在,您可以从应用程序的任何位置调用此类并获取您的令牌。
var mytoken= getIt.get<AppModel>().token;
推荐阅读
- python-3.x - 如何计算while循环的重复次数
- ms-access - 有没有办法在 Access 表中引入条件格式?
- visual-studio-code - 在哪里设置 Visual Studio 的工作目录?
- javascript - 如何在javascript中将两个按钮连接到一个div
- spring - 我如何知道在 Spring Batch Step 开始时要处理的块/项目的总数?
- angular - 实现 Angular 跨字段验证的最佳方法
- android-5.1.1-lollipop - 如何将我的 SWM 8802 更新到 Android 8.1
- vba - 查看接口类时,VBE 和 Excel 在调试时崩溃
- laravel - 使用单个模板完全从 JSON 数据中使用 Vue.js 编译多个数据表
- sml - SML 从数据类型调用函数