expert
How do I postpone invocation of fetcher function of the solid-js resource?
I have following snippet in my .tsx file. Could you please explain why mappings resource is being called for switch branches that are false ? How can I avoid it ?
const [pipeline] = createResource(() => api.pipeline(params.id)) const [mappings] = createResource(() => api.pipelineMappings(params.id), { deferStream: true }) <Switch> <Match when={pipeline()?.state == PipelineState.INCOMPLETE}> {/Show this div when mapping is not loaded/} <div class="flex flex-col items-center py-12 px-4 sm:px-6"> <h1 class="text-medium mb-2 text-2xl text-neutral-600">No mappings</h1> <p class="text-neutral-600">Nothing to show until pipeline is fully configured.</p> </div> </Match> <Match when={pipeline()?.state != PipelineState.INCOMPLETE}> <Show when={mappings() != undefined} fallback={<LoadingIcon/>}> </Match> </Switch>
3 replies
Canonical way to handle exceptions in async functions to perform redirect?
Hi folks, I'm very new to solid and frontend development hence my question. I have a class that talks to server API. It uses cookie to authenticate so eventually cookie may expire and an endpoint returns http 401 error.
and here is example how it's used
How can I centralize handing of such error so that any page that gets the exception would redirect user to login page ? I tried using <ErrorBoundary> but it doesn't catch exception thrown in onClick handler because, I assume, it's not thrown in rendering stage.
I tried calling navigate() in UserActions but it does nothing.
What is the proper way to achieve it ? Thank you.
2 replies