TanStackT
TanStack3mo ago
3 replies
constitutional-coral

useRouteContext is not waiting for `beforeLoad` function

I have a problem in solid:

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() doesn't have
user
prop, but in
beforeLoad
function I always set this, what's the problem?
Was this page helpful?