As the title states, I have code I want to run at the beginning of my app loading and it's asynchronous and required for my HomeView, obviously I can't put it inside initState
so where do I put it?
You put it inside a separate async function. And you call this function from the iniState method
oh
huh
that's confusing lol
If you don't want the page the load before then you can create a middle splash page
That's usually the way with stuff like this
lol
okay so
The following assertion was thrown building Builder:
_HomeViewState.initState() returned a Future.
State.initState() must be a void method without an `async` keyword.
Rather than awaiting on asynchronous work directly inside of initState, call a separate method to do this work without awaiting it.
Future<void> setupState() async {
model.User? account = await ref.read(authAPIProvider).currentUserAccount();
if (account != null) {
model.Document userDocument =
await ref.read(userAPIProvider).getUserData(account.$id);
UserModel userModel = UserModel.fromMap(userDocument.data);
needsLogin = userModel.sessionData.isNotEmpty;
print("needsLogin: $needsLogin");
if (!needsLogin) {
final userData =
await ref.read(dataAPIProvider).getUserData();
userData.fold(
(l) {
print("Error getting data: ${l.message}");
},
(r) {
setState(() {
userData = r;
});
},
);
}
}
}
@override
void initState() async {
super.initState();
await setupState();
}
this doesn't work and gives me an error
do I need to call a function normally and have that function call the async function?
InitState should remain sync
okay so I did
void doSetup() {
setupState();
}
@override
void initState() {
super.initState();
doSetup();
}
and that seems to work lmao
You just call the inner function. And you can use then
if you need
Recommended threads
- Current User is Not authorized
recreating same Thread
- Account Status
Hello! I'm a student and am in the GitHub Student Organization, and according to GitHub, I am recieving pro membership via the Student Dev Pack. However, when I...
- Refund Request - Just purchased 2 mins a...
Hello Appwrite Team! I am a student and like 2 minutes ago I purchased Appwrite Pro ($15) because I had reached a limit on the number of attributes in a collect...