let foo = $signal(true);
const [foos, { mutate }] = createResource(foo, fetchSomeData);
return <span onClick={() => foo = !foo}>{foos}</span>
Expected result:
const [foo, setFoo] = createSignal(true);
const [foos, { mutate }] = createResource(foo, fetchSomeData);
return <span onClick={() => foo = !foo}>{foos}</span>
Actual result:
const [foo, setFoo] = createSignal(true);
const [foos, { mutate }] = createResource(foo(), fetchSomeData);
// ^^^^^
return <span onClick={() => foo = !foo}>{foos}</span>
In other words, createResource expects the signal getter as the first argument, not a result of that getter.