DatabaseProvider
React context provider for database access
DatabaseProvider makes the database instance available to all hooks in the tree.
Usage
import { DatabaseProvider, useDatabase } from "ctrodb/react"
const db = new Database({ ... })
await db.connect()
function App() {
return (
<DatabaseProvider db={db}>
<MyComponent />
</DatabaseProvider>
)
}
function MyComponent() {
const db = useDatabase()
// Access raw db instance
return <div>Connected to {db.name}</div>
}
Nested providers
Providers can be nested. The innermost provider's database takes precedence.
useDatabase
Returns the database from context. Throws if no provider is found and no default database is set.
const db = useDatabase()
db.collection("todos").get(1)
setDefaultDatabase / getDb
These module-level helpers manage a default database instance.
import { setDefaultDatabase, getDb } from "ctrodb/react"
import { Database } from "ctrodb"
const db = new Database({ name: "myapp" })
await db.connect()
setDefaultDatabase(db)
// Elsewhere, without context:
const defaultDb = getDb()
defaultDb.collection("todos").getAll()
getDb() throws if no default has been set, with a descriptive error message.
How it works
DatabaseProvider calls setDefaultDatabase(db) and renders a context provider.
The useDatabase hook reads from context first, falling back to the default.
How is this guide?
Last updated on Jun 20, 2026