[React] Error boundary
import {ErrorBoundary, FallbackProps} from 'react-error-boundary'
const userState = selectorFamily({
key: 'user',
get: (userId: number) => async () => {
const userData = await fetch(`https://jsonplaceholder.typicode.com/users/${userId}`).then((res) => res.json())
if (userId === 4) {
throw new Error('User does not exists')
}
return userData
},
})
const ErrorFallback = ({error, resetErrorBoundary}: FallbackProps) => {
return (
<div>
<Heading as="h2" size="md" mb={1}>
Something went wrong
</Heading>
<Text>{error.message}</Text>
<Button onClick={resetErrorBoundary}>OK</Button>
</div>
)
}
export const Async = () => {
const [userId, setUserId] = useState<number | undefined>(undefined)
return (
<Container py={10}>
<Heading as="h1" mb={4}>
View Profile
</Heading>
<Heading as="h2" size="md" mb={1}>
Choose a user:
</Heading>
<Select
placeholder="Choose a user"
mb={4}
value={userId}
onChange={(event) => {
const value = event.target.value
setUserId(value ? parseInt(value) : undefined)
}}
>
<option value="1">User 1</option>
<option value="2">User 2</option>
<option value="3">User 3</option>
<option value="4">User 4</option>
</Select>
{userId !== undefined && (
<ErrorBoundary
FallbackComponent={ErrorFallback}
onReset={() => setUserId(undefined)}
resetKeys={[userId]} /* reset whenever userId changed */
>
<Suspense fallback={<div>loading...</div>}>
<UserData userId={userId} />
</Suspense>
</ErrorBoundary>
)}
</Container>
)
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-10-11 [SAP] 35. Cost saving
2021-10-11 [Cloud Architect] 10. Securing Access to Cloud Infrastructure
2021-10-11 [SAP] 34. System Manager
2021-10-11 [SAP] 33. Deployment and instance management
2020-10-11 [Kotlin] Open Classes and Inheritance
2020-10-11 [Kotlin] Class
2020-10-11 [Kotlin] Reverse a List with downTo