useRouteContext is not waiting for `beforeLoad` function
I have a problem in solid:
Sometimes when doing navigation,
export const Route = createFileRoute("/_spa/_authenticated")({
component: AuthLayout,
beforeLoad: async ({ context }): Promise<{ user: AuthenticatedUserResponse }> => {
let user = context.authenticatedUser();
if (!user) {
// trying to get the user from refresh token request
user = await getRefreshToken(undefined, {
customResponseHandler: (response) => {
if (response.status === 401) throw redirect({ to: "/auth/redirect" });
return response.json() as any;
},
});
console.log("fetched user", user);
context.setAuthenticatedUser(user);
}
console.log("return user", user);
return { user };
},
});
// in the route component:
const routeContext = Route.useRouteContext();
createComputed(() => {
console.log(routeContext());
console.log(routeContext().user);
});export const Route = createFileRoute("/_spa/_authenticated")({
component: AuthLayout,
beforeLoad: async ({ context }): Promise<{ user: AuthenticatedUserResponse }> => {
let user = context.authenticatedUser();
if (!user) {
// trying to get the user from refresh token request
user = await getRefreshToken(undefined, {
customResponseHandler: (response) => {
if (response.status === 401) throw redirect({ to: "/auth/redirect" });
return response.json() as any;
},
});
console.log("fetched user", user);
context.setAuthenticatedUser(user);
}
console.log("return user", user);
return { user };
},
});
// in the route component:
const routeContext = Route.useRouteContext();
createComputed(() => {
console.log(routeContext());
console.log(routeContext().user);
});Sometimes when doing navigation,
routeContext()routeContext() doesn't have useruser prop, but in beforeLoadbeforeLoad function I always set this, what's the problem?