【发布时间】:2021-04-25 08:23:04
【问题描述】:
我不断收到此引用错误,不知道出了什么问题。
ReferenceError:初始化前无法访问“搜索” 应用程序 C:/Users/GS66/Desktop/IN20/IFN666/week4/src/App.js:60 57 | 58 |导出默认函数 App() { 59 |
60 | const { 加载,标题,错误 } = useNewsArticles(search); 61 | const [搜索,setSearch] = useState(""); 62 | 63 |如果(加载){
这是 App.js 中的 App 部分
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,
};
}
【问题讨论】:
-
不确定该说什么,因为错误说明了一切:您在定义它之前使用
search,这发生在更下方的一行...错误中的:60表示第60行所以这样你就知道错误在说哪一行 -
您在第 2 行使用搜索。您在第 3 行初始化搜索。
标签: javascript reactjs referenceerror