我不断收到此引用错误,但不知道出了什么问题。
ReferenceError:初始化前无法访问“搜索” 应用程序 C:/Users/GS66/Desktop/IN20/IFN666/week4/src/App.js:60 57 | 57 58 | 58导出默认函数 App() { 59 |
60 | const { loading, headlines, error } = useNewsArticles(search); 61 | const [search, setSearch] = useState(""); 62 | 63 | if (loading) {
这是 App.js 中的应用程序部分
export default function App() {
const {loading, headlines, error} = useNewsArticles(search);
const [search, setSearch] = useState("");
if (loading) {
return <p>Loading...</p>;
}
if (error) {
return <p>Something went wrong: {error.message}</p>
}
return (
<div className="App">
<h1>News Headlines</h1>
<SearchBar onSubmit={setSearch}/> {
headlines.map((headline) => (
//headline is now an object
<Headline key={headline.url} title={headline.title}/>
))
}
</div>
);
}
这是 api.js 中的 useNewsArticles 函数部分。
export function useNewsArticles(search) {
const [loading, setLoading] = useState(true);
const [headlines, setHeadlines] = useState([]);
const [error, setError] = useState(null);
useEffect(() => {
(async() => {
try {
setHeadlines(await getHeadlines(search));
setLoading(false);
} catch (err) {
setError(error);
setLoading(false);
}
})();
}, [search]);
return {
loading,
headlines,
error,
};
}
最佳答案
您正在第 3 行中初始化搜索并在第 2 行中使用。您应该执行相反的操作,例如
const [search, setSearch] = useState("");
const {loading, headlines, error} = useNewsArticles(search);
关于javascript - ReferenceError:初始化前无法访问 'search',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67251234/