solidjs / solidjs/solid-docs

Document untrack behavior with uninitialized async reads (NotReady propagation)

Open Beginner friendly
#1,635 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
MDX
Stars
292
Forks
361
Avg merge
7h 51m
Merged PRs (30d)
1

Description

From solidjs/solid#3007 (reported by @mizulu).

The untrack reference page (https://v2.solidjs.com/reference/solid-js/reactivity/untrack) should document how untrack interacts with async reads in 2.0:

  • untrack stops dependency tracking — reads inside it do not subscribe the surrounding computation.
  • It does not opt out of async settlement. Reading an async source that is not yet ready inside untrack still throws NotReadyError, which propagates to the owning computation: the owner suspends (participates in Loading boundaries) and re-runs once the source first resolves.

In other words, untrack(() => getColor()) where getColor is a pending async memo will still cause the owner to re-run when getColor first settles — the read is untracked, but the not-ready suspension is part of async graph resolution, not tracking.

The page should spell out this distinction (tracking vs. settlement) and show the pattern for a genuinely non-suspending read of a possibly-pending source (e.g. checking readiness with isPending/latest as appropriate) so users aren't surprised that untrack alone doesn't provide a fallback-value escape hatch. A fallback-value overload for untrack was considered in solidjs/solid#3007 and rejected — the docs are the fix.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the untrack reference page linked in the issue and review the async-read behavior described there alongside the solidjs/solid#3007 context. Update the page to distinguish dependency tracking from NotReady settlement, explain the owner’s suspension and rerun, and show a genuinely non-suspending readiness check using isPending/latest.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.