gpt4 book ai didi

android - 如何读取和使用 initstate() 中的共享偏好值?我可以在其他小部件中读取和使用值,但不能在我在 initstate 中调用的 API 中读取和使用值

转载 作者:行者123 更新时间:2023-12-05 06:27:05 24 4
gpt4 key购买 nike

我正在 initstate 中通过 RestAPI 创建一个企业列表。我需要使用 sharedpreference 值作为其参数之一,但是当我尝试加载数据时,sharepreference 值初始为空,但该值可以轻松用于其他小部件。

问题是如何在initstate中读取sharepreference值并同时使用?

我尝试了很多选项,例如将我的 api 从 initstate 中取出并使用异步函数定义并在 initstate 中调用它。

**@override
void initState() {
super.initState();
loadData();
getBizList();
}
getBizList() async {
await api
.bizListAPI(widget.subCatid, savedCityID, supSubFinal, areaFinal)
.then((response) {
setState(() {
bizListOBJ = response;
});
});
}
loadData() async {
SharedPreferences savedPref = await SharedPreferences.getInstance();
setState(() {
savedCity = (savedPref.getString('savedCity') ?? "Mumbai");
savedCityID = (savedPref.getString('savedCityID') ?? "1");
});
}**

在上面的代码中,我能够从 appbar 中的 sharedpreference(savedCity) 获取或读取数据并显示城市名称,但我想使用 savedcityID 数据在 initstate 中传递我的 api。

我也试过用下面的插件

[https://medium.com/@greg.perry/a-flutter-class-for-app-preferences-a256166ecc63.][1]

有了这个我就可以做我想做的事但是每次我关闭我的应用程序并再次打开......我有以下错误

"_prefsInstance != null,
"Maybe call Prefs.getKeysF() instead. SharedPreferences not ready yet!");"

在那之后,当我返回并再次打开页面时,应用程序和商业列表工作正常,直到我再次关闭我的应用程序。

 [1]: https://medium.com/@greg.perry/a-flutter-class-for-app-preferences-a256166ecc63

抱歉我的任何新手解释或问题。实际上,这是我在堆栈中的第一个问题,我是 flutter 的初学者。

最佳答案

你能试试这个吗?

void initState() {
super.initState();
loadData().then((_) {
getBizList();
});
}

关于android - 如何读取和使用 initstate() 中的共享偏好值?我可以在其他小部件中读取和使用值,但不能在我在 initstate 中调用的 API 中读取和使用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55572636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com