UNPKG

@td-design/react-native

Version:

react-native UI组件库

99 lines (82 loc) 2.59 kB
--- title: ErrorBlock - 异常捕获组件 nav: title: RN组件 path: /react-native group: title: 展示组件 path: /display --- # ErrorBlock 异常捕获组件 内置了两种场景: - 代码出错,包括 hooks 内出错、render 内出错,这时候会显示默认的应用出错的界面 - 网络请求出错,即代码层面通过`throw new Error(JSON.stringify({type: 'network'}))`,这时候会显示内置的网络请求失败的出错界面 具体测试代码可以参见 `exmaple` 里面的 `ErrorBlockDemo.tsx` 文件 ## 效果演示 ### 1. 默认异常 ```tsx | pure <Box flex={1}> <ErrorBlock onError={onError} onRefresh={onRefresh}> <Demo1 /> </ErrorBlock> </Box> ``` <center> <figure> <img alt="empty-ios1.png" src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1643165357318249571.png" style="width: 375px; margin-right: 10px; border: 1px solid #ddd;" /> </figure> </center> ### 2. 网络连接异常 ```tsx | pure <Empty customImg={<Image source={require('../../assets/img/pic_empty.png')} />} /> ``` <center> <figure> <img alt="empty-ios2.png" src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1643165225985160065.png" style="width: 375px; margin-right: 10px; border: 1px solid #ddd;" /> </figure> </center> ### 3. 自定义异常展示 ```tsx | pure <Box height={300}> <ErrorBlock onError={onError} customNode={ <Box height={200} padding="x4" justifyContent={'center'} alignItems="center" borderWidth={1} borderColor="func600" > <Text>我是自定义错误展示</Text> </Box> } > <Demo1 /> </ErrorBlock> </Box> ``` <center> <figure> <img alt="empty-ios2.png" src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1643165587210140943.png" style="width: 375px; margin-right: 10px; border: 1px solid #ddd;" /> </figure> </center> ## API | 属性 | 必填 | 说明 | 类型 | 默认值 | | ---------- | ------- | -------------------- | ---------------------------------------------- | ------ | | customNode | `false` | 自定义出错时渲染组件 | `ReactNode` | | | onError | `false` | 异常捕获的处理逻辑 | `(error: Error, errorInfo: ErrorInfo) => void` | | | onRefresh | `false` | 重新刷新逻辑 | `() => void` | |