提问人:zi zi 提问时间:10/26/2023 最后编辑:Drew Reesezi zi 更新时间:10/26/2023 访问量:34
React Hooks 中 API 路径的错误边界
error boundary for an api path in react hooks
问:
我正在尝试学习错误边界,因此我更改了 url 路径并包含错误边界包并在外面添加了该组件,但我仍然没有看到错误消息 你能告诉我如何解决它吗?在下面提供代码和小提琴。我用谷歌搜索了一下,但仍然没有运气。
索引 .js
import React, { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import { ErrorBoundary } from 'react-error-boundary';
import App from './App';
const rootElement = document.getElementById('root');
const root = createRoot(rootElement);
root.render(
<StrictMode>
<ErrorBoundary fallback={<div>Something went wrong</div>}>
<App />
</ErrorBoundary>
</StrictMode>
);
使用提取
import { useState, useEffect } from 'react';
const useFetch = (url) => {
const [data, setData] = useState(null);
useEffect(() => {
fetch(url)
.then((res) => res.json())
.then((data) => setData(data));
}, [url]);
return [data];
};
export default useFetch;
应用程序
import React from 'react';
import { useState, useEffect } from 'react';
import './style.css';
import useFetch from './useFetch';
export default function App() {
const [data] = useFetch('https://jsonplaceholder.typicode.com/todos/ddd');
return (
<div>
{data &&
data.map((item) => {
return <p key={item.id}> {item.title}</p>;
})}
<h1>Hello StackBlitz!</h1>
<p>Start editing to see some magic happen :)</p>
</div>
);
}
https://stackblitz.com/edit/react-6tdyn9?file=src%2Findex.js,src%2FuseFetch.js,src%2FApp.js
答:
0赞
Drew Reese
10/26/2023
#1
代码实际上没有任何错误或不正确,它完全按照预期工作。
然而,stackblitz 似乎正在奇怪地处理渲染 React 错误边界覆盖,而实际发生的事情根本不明显。
通常,当渲染 React 错误边界时,React 会渲染/显示一个包含错误的整页过度 UI、错误发生位置周围的代码片段、简短的堆栈跟踪以及右上角的按钮以消除覆盖。
请注意,叠加层是半透明的,您实际上可以阅读其后面的“出了点问题”文本。关闭此覆盖层将生成呈现的回退 UI。
另请注意,此覆盖仅在非生产版本中显示,例如在开发应用程序时。
此屏幕仅在开发中可见。如果 应用在生产环境中崩溃。 打开浏览器的开发者控制台以进一步检查此错误。
如果在生产版本中呈现 UI 时引发错误并被错误边界捕获,用户将直接看到呈现的回退 UI。
下一个:React Npm 启动失败
评论
data