<ClerkLoading>
The <ClerkLoading>
renders its children while Clerk is loading, and is helpful for showing a custom loading state.
Usage
It's not recommended to wrap the entire app in the <ClerkLoading>
component; instead, only wrap the components that need access to the Clerk
object.
import { ClerkLoaded, ClerkLoading } from '@clerk/nextjs'
declare global {
interface Window {
Clerk: any
}
}
export default function Page() {
return (
<>
<ClerkLoading>
<p>Clerk is loading...</p>
</ClerkLoading>
<ClerkLoaded>
<p>Clerk has loaded</p>
</ClerkLoaded>
</>
)
}
import { ClerkLoaded, ClerkLoading } from '@clerk/nextjs'
declare global {
interface Window {
Clerk: any
}
}
export default function Page() {
return (
<>
<ClerkLoading>
<p>Clerk is loading</p>
</ClerkLoading>
<ClerkLoaded>
<p>Clerk has loaded</p>
</ClerkLoaded>
</>
)
}
import { ClerkLoaded, ClerkLoading } from '@clerk/clerk-react'
declare global {
interface Window {
Clerk: any
}
}
export default function Example() {
return (
<>
<ClerkLoading>
<p>Clerk is loading</p>
</ClerkLoading>
<ClerkLoaded>
<p>Clerk has loaded</p>
</ClerkLoaded>
</>
)
}
import { ClerkLoading, ClerkLoaded } from '@clerk/remix'
declare global {
interface Window {
Clerk: any
}
}
export default function Index() {
return (
<>
<ClerkLoading>
<p>Clerk is loading</p>
</ClerkLoading>
<ClerkLoaded>
<p>Clerk has loaded</p>
</ClerkLoaded>
</>
)
}
import { ClerkLoading, ClerkLoaded } from '@clerk/clerk-expo'
import { Text, View } from 'react-native'
declare global {
interface Window {
Clerk: any
}
}
export default function Screen() {
return (
<View>
<ClerkLoading>
<Text>Clerk is loading</Text>
</ClerkLoading>
<ClerkLoaded>
<Text>Clerk has loaded</Text>
</ClerkLoaded>
</View>
)
}
Feedback
Last updated on