qwik
qwik copied to clipboard
[📖] Handling useResource$() without a <Resource />
Suggestion
adding a explicit example on how to handle the case https://discord.com/channels/842438759945601056/1293247102637441064/1293570046924161055
import {
component$,
useResource$,
useSignal,
useTask$,
} from "@builder.io/qwik";
export const NoResourceNeeded = component$(() => {
const tracked = useSignal(0);
const resolvedValue = useSignal<number>();
const rejectedValue = useSignal<any>();
const resource = useResource$(({ track }) => {
const value = track(() => tracked.value);
return value + 1;
});
useTask$(async ({ track }) => {
const promise = track(() => resource.value);
try {
resolvedValue.value = await promise;
} catch (e) {
rejectedValue.value = e;
}
});
return (
<div>
{resource.loading && <div>Loading...</div>}
{resolvedValue.value && <div>Resolved: {resolvedValue.value}</div>}
{rejectedValue.value && <div>Rejected: {rejectedValue.value}</div>}
<button onClick$={() => tracked.value++}>Click</button>
</div>
);
});
Thanks @Kampouse!
For context: this was a very minimalist example I wrote to show someone how it could work. For doc purpose it could be improved a bit.