Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 引用错误:无法访问';搜索';初始化前_Javascript_Reactjs_Referenceerror - Fatal编程技术网

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行中初始化搜索。