在我的React组件中获取以下代码:
const getPhotos = async (page?: number) => {
setLoading(true);
try {
const data = await endpoints.getCuratedPhotos(page)
if (!data) {
setError('No Photos found')
setLoading(false);
} else {
setPhotos(data);
setSearchQuery(null)
setLoading(false);
}
} catch (e) {
console.log('error something went wrong', e);
setError(`error something went wrong, ${e}`)
setLoading(false);
}
}
useEffect(() => {
getPhotos();
}, [])
在try块中使用if语句检查!data
是否有必要,甚至是一个好的实践?除了开发人员更改端点中的URL之外,是否还有其他情况会触发此操作?仅让我的catch块捕获所有错误是否足够?提前感谢您。
1条答案
按热度按时间iezvtpos1#
实际上,验证
data
是一个很好的实践:1.它可以帮助您只呈现有效的数据,避免破坏UI。
1.它可以帮助您向用户显示一致的错误消息
此外,还有一种方法可以使用
finally
稍微重构函数,调用finally
时可能出错,也可能不出错: