{
  "id": "a50e5a1a2b581058e78e563a",
  "source": "solid:signals",
  "type": "github-document",
  "title": "use-context",
  "content": "---\ntitle: useContext\nuse_cases: \u003e-\n  consuming context, accessing global state, avoiding prop drilling, theme\n  access, auth state, shared data\ntags:\n  - context\n  - providers\n  - global-state\n  - hooks\n  - consumption\nversion: '1.0'\ndescription: \u003e-\n  Access context values with useContext to consume data from parent providers.\n  Avoid prop drilling and access shared state throughout your component tree.\n---\n\nUsed to grab context within a context provider scope to allow for deep passing of props without having to pass them through each Component function.\nIt's therefore used in conjunction with [`createContext`](/reference/component-apis/create-context) to consume the data from a Provider scope and thus avoid passing data through intermediate components (prop drilling).\n\n```ts\nconst [state, { increment, decrement }] = useContext(CounterContext)\n```\n\n## Recommended usage\n\nIt is often a good idea to wrap `useContext` in a function like so:\n\n```ts title=\"/context/counter-component.tsx\"\nfunction useCounterContext() {\n\tconst context = useContext(CounterContext)\n\n\tif (!context) {\n\t\tthrow new Error(\"useCounterContext: cannot find a CounterContext\")\n\t}\n\n\treturn context\n}\n```\n\nSee the API reference of [createContext](/reference/component-apis/create-context) the API on how to generate a Provider scope.\nAnd check the [Context concepts](/concepts/context) for more information on how to architecture your contexts.\n\n## Type signature\n\n```ts\nimport { type Context } from \"solid-js\"\n\nfunction useContext\u003cT\u003e(context: Context\u003cT\u003e): T\n\n```",
  "url": "https://github.com/solidjs/solid-docs/blob/HEAD/src/routes/reference/component-apis/use-context.mdx",
  "metadata": {
    "path": "src/routes/reference/component-apis/use-context.mdx",
    "repo": "solidjs/solid-docs",
    "repo_url": "https://github.com/solidjs/solid-docs.git",
    "size": 1545,
    "source_type": "github"
  },
  "hash": "6779409e69928136c91a586f9a93b283b7a2c56bd04c373ded8f6608ddfd472b",
  "timestamp": "2026-02-23T11:43:00.188864108+01:00"
}