Open
Description
📚 Subject area/topic
concepts/derived-values/derived-signals
📋 Page(s) affected (or suggested, for new content)
https://docs.solidjs.com/concepts/derived-values/derived-signals
📋 Description of content that is out-of-date or incorrect
These functions are not executed immediately, but instead are only called when the values they rely on are changed. When the underlying signal is changed, the function will be called again to produce a new value.
I'm beginning with solidjs, so maybe I got this wrong, but I think this is at least misleading.
It is not called when count()
changed (click "call inc").
It is only called, if it is explicitly called (in the example click "call double") or if it is used in a reactive context (uncomment {/*<div>double: {double()}</div>*/}
)
🖥️ Reproduction in StackBlitz (if reporting incorrect content or code samples)
import { render } from "solid-js/web";
import { createSignal } from "solid-js";
function App() {
const [count, setCount] = createSignal(0);
const inc = () => setCount(count() + 1)
const double = () => {console.log("double called"); return count() * 2}
return (
<div>
<div>count: {count()}</div>
{/*<div>double: {double()}</div>*/}
<button onClick={() => inc()}>call inc</button>
<button onClick={() => double()}>call double</button>
</div>
);
}
render(() => <App />, document.getElementById('app'));