在扑动中,是否有办法在小部件中获得扑动安全存储的项目?



我想从颤振安全存储中获取数据。但是正如你所知道的,get是一个async函数。那么在我的小工具中,我如何获取这些数据呢?我不能用await来取它。那我该怎么接受呢?谢谢你的回复!

代码:

FutureBuilder<PurchasedPackageResponseModel?>(
future: service.getPurchasedPackages(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return const Center(
child: CircularProgressIndicator(),
);
}
I want to take data here ==>    bool isClientTherapist = (I cant use await here So its giving error.) UserSecureStorage.getField("isClientTherapist");

final model = snapshot.data!.data!;
if (model.isEmpty) {
return const NotBoughtSessionWidget();
}
return const SizedBox();

如果我使它有状态的小部件,我可以在initstate。但我使用getx,我想在无状态的小部件。这可能吗?

您可以简单地在第一个FutureBuilder中添加另一个FutureBuilder来等待第二次调用。

FutureBuilder<PurchasedPackageResponseModel?>(
future: service.getPurchasedPackages(),
builder: (context, snapshot1) {
if (!snapshot1.hasData) {
return const Center(
child: CircularProgressIndicator(),
);
}
return FutureBuilder<bool?>(
future: UserSecureStorage.getField("isClientTherapist"),
builder: (context, snapshot2) {
if (!snapshot2.hasData) {
return const Center(
child: CircularProgressIndicator(),
);
}
final isClientTherapist = snapshot2.data!;
final model = snapshot1.data!.data!;
if (model.isEmpty) {
return const NotBoughtSessionWidget();
}
return const SizedBox();
},
);
},
)

最新更新