React Native
Zero has built-in support for React Native and Expo.
Usage is identical to React on the web, except you must provide a kvStore implementation.
Choose the storage adapter you prefer:
import {ZeroProvider} from '@rocicorp/zero/react'
import {expoSQLiteStoreProvider} from '@rocicorp/zero/expo-sqlite'
export function RootLayout() {
return (
<ZeroProvider
// ...
kvStore={
// On native, use expo-sqlite; on web, use IndexedDB
Platform.OS !== 'web'
? expoSQLiteStoreProvider()
: 'idb'
}
>
<App />
</ZeroProvider>
)
}For a complete example, see zslack.