Javascript 引用错误:无法访问';搜索';初始化前
我一直收到这个参考错误,不知道出了什么问题。Javascript 引用错误:无法访问';搜索';初始化前,javascript,reactjs,referenceerror,Javascript,Reactjs,Referenceerror,我一直收到这个参考错误,不知道出了什么问题。 export function useNewsArticles(search) { const [loading, setLoading] = useState(true); const [headlines, setHeadlines] = useState([]); const [error, setError] = useState(null); useEffect(() => { (async() => {
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,
};
}
ReferenceError:初始化前无法访问“搜索”
应用程序
C:/Users/GS66/Desktop/IN20/IFN666/week4/src/App.js:60
57 |
58 |导出默认函数App(){
59|
60 | const{加载、标题、错误}=使用新闻文章(搜索);
61 | const[search,setSearch]=useState(“”);
62 |
63 |如果(装载){
这是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>
);
在声明变量之前尝试使用变量时,会出现此错误
首先使用
useState()
声明search
,然后将其用作钩子参数。您正在第3行初始化搜索,并在第2行使用。您应该执行相反的操作,如
const [search, setSearch] = useState("");
const {loading, headlines, error} = useNewsArticles(search);
不确定该说什么,因为错误说明了一切:在定义它之前,您正在使用
搜索
,这发生在下一行…错误中的:60
表示第60行,这样您就知道错误所指的是第2行中的搜索。您在第3行中初始化搜索。