gpt4 book ai didi

flutter - 我无法将数据持久保存在HiveBox的本地存储中,当我重新加载页面时,本地数据库中的所有内容都为空

转载 作者:行者123 更新时间:2023-12-03 03:49:15 25 4
gpt4 key购买 nike

我是 Dart 新手。我需要获取Web API的数据并将其作为LocalStorage放在Hive.box中。我可以获取Api数据,并将其放在Hive中,但是我无法在另一个页面中保存该数据,例如,我不能在另一个页面中使用localStorage变量...问题是HiveBox返回null。
Main.dart-打开盒子

Future _abrirCaixa() async {
var dir = await getApplicationDocumentsDirectory();
Hive.init(dir.path);
return await Hive.openBox('localStorage');
}

void main() {
_abrirCaixa();
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
home: MyApp(),
));
}
Login.dart中的RaisedButton
Padding(
padding: const EdgeInsets.only(top: 16.0),
child: ButtonTheme(
height: 40.0,
child: RaisedButton(
onPressed: () async {
if (controladorUsuario.text.isEmpty ||
controladorSenha.text.isEmpty) {
camposVazios.camposVazios(context);
} else {
await fazerLogin(context);
infoAddADM();
infoAddCond();
}
},
// await infoAddCond();
// await infoAddADM();

child: Text(
"Conectar",
style: TextStyle(color: white),
),
color: mainColor,
),
),
),
fazerLogin()=>在sessionValidation中,我将所有数据放入LocalStorage
[...]
var dados = await Session.sessionValidation(login, senha);

print('------------------------------');
print(localStorage.values.toString());
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TestePage(),
),
);
[...]
TestPage.dart
class _TestePageState extends State<TestePage> {
@override
Widget build(BuildContext context) {
print('--------------//---------------------');
print(localStorage.values.toString());

return Container();
}
}
对我有什么返回:
At first: 

I/flutter (14463): ------------------------------
I/flutter (14463): (3, Adm ConectCon, 53644, 4, 0, Condomínio SID, 509, 140, ..., null, 90377)
I/flutter (14463): --------------//---------------------
I/flutter (14463): (3, Adm ConectCon, 53644, 4, 0, Condomínio SID, 509, 140, ..., null, 90377)

After a hot reload:

I/flutter (14463): --------------//---------------------
I/flutter (14463): ()

最佳答案

我对代码有些困惑,但是您可以尝试以下操作:

void main() async{
await _abrirCaixa();
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
home: MyApp(),
));
}
您可以进行异步处理,然后可以等待_abrirCaixa()方法的使用(这是 future 的方法)。这应该解决HiveBox为null的错误。

关于flutter - 我无法将数据持久保存在HiveBox的本地存储中,当我重新加载页面时,本地数据库中的所有内容都为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64228877/

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