Skip to content

[Content]: misleading section about when derived-signals are called #692

Open
@georgfaust

Description

@georgfaust

📚 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'));

Metadata

Metadata

Assignees

No one assigned

    Labels

    solidRelated to core Solid

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions