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 (deprecated)
Deprecated: Use
<DatabaseProvider>instead. Will be removed in v2.0.
These module-level helpers are available but discouraged:
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 renders a React context provider.
The useDatabase hook reads from context first, falling back to the default
database (if set via the deprecated setDefaultDatabase).
How is this guide?
Last updated on Jul 2, 2026