【发布时间】:2022-01-07 12:38:00
【问题描述】:
我们什么时候应该使用错误边界组件?只是因为缺少道具之类的东西?
例如,想象一下这个 api 抓取钩子:
const useFetch = () => {
...
const [error, setError] = useState(null);
const method = async () => {
try {
await api.fetchData();
} catch(err) {
setError(err);
}
};
useEffect(() => {
method();
},[]);
return { ..., error };
}
现在,在一个组件中,我只是这样做:
const MyComponent = () => {
const { error } = useFetch();
if (error) return <FallbackUI />;
return <MainUI />;
}
我可以使用 ErrorBoundary 组件来处理这种情况(api 调用错误)而不是条件渲染吗?
编辑
如果我只想在我的获取数据方法失败并且之前检索到任何数据时显示后备 UI,那该怎么办?
类似:
const { data, getMoreData, error } = useFetchPosts(); // data is stateful inside the hook
if (error && !data) return <FallbackUI />;
return <MainUI data={data} />;
【问题讨论】:
标签: javascript reactjs react-native