基本上,我有一个Future返回从安全存储中获取的jwt,我想将返回值分配给一个变量,比如说这个变量是token。它大致是这样的。
Future<String> getJwt() async {
final secureStorage = SecureStorage();
var jwt = await secureStorage.readSecureData('jwt');
return jwt;
}
我想要将其赋值给变量,像这样。
static String token = getJwt();
代码大致如下。
String? _token;
Future<String> getJwt() async {
final secureStorage = SecureStorage();
var jwt = await secureStorage.readSecureData('jwt');
return jwt;
}
void getJWT() async {
String token = await getJwt();
}
class API {
final token = getJWT();
static Future<String> getData(String url) async {
try {
http.Response response = await http.get(Uri.parse(baseURL + url),
headers: {
"Content-type": "application/json",
"Authorization": 'Bearer ' + token
});
return response.body;
} catch (_) {
return 'error';
}
}
static Future<String> postData(String url, String json) async {
try {
http.Response response = await http.post(Uri.parse(baseURL + url),
headers: {
"Content-type": "application/json",
'Authorization': 'Bearer ' + token
},
body: json);
return response.body;
} catch (_) {
return 'error';
}
}
}
我已经尝试将字符串更改为Future,但它不起作用,如何解决这个问题?提前致谢。
FutureBuilder
,您不需要任何poblateJwt
/getJwtData
方法,也不需要late String _jwt;
等 - 您所需的只是在initState
中设置_future = getJwt();
并直接在FutureBuilder
内部使用它。 - pskink_future = getJwt();
(不需要任何其他额外的async
方法),并在FutureBuilder
中使用future: _future
- 就这样。 - pskink_calculation
变量是如何使用的。 - pskink