Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 使用useState、React时钩子调用无效_Javascript_Reactjs_React Router_React Hooks - Fatal编程技术网

Javascript 使用useState、React时钩子调用无效

Javascript 使用useState、React时钩子调用无效,javascript,reactjs,react-router,react-hooks,Javascript,Reactjs,React Router,React Hooks,我第一次面对的问题很少。我试图使用一个简单的useState,但由于某些原因,我无法理解React为什么会将错误抛出给我,而无论我尝试做什么,都无法修复它 这是错误的图像: 错误说明: 错误:无效的钩子调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一: 1.React和渲染器的版本可能不匹配(例如React DOM) 2.你可能违反了钩子的规则 3.同一应用程序中可能有多个React副本 我的代码:(非常简单) import React,{useState}来自“React”

我第一次面对的问题很少。我试图使用一个简单的useState,但由于某些原因,我无法理解React为什么会将错误抛出给我,而无论我尝试做什么,都无法修复它

这是错误的图像: 错误说明:

错误:无效的钩子调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一: 1.React和渲染器的版本可能不匹配(例如React DOM) 2.你可能违反了钩子的规则 3.同一应用程序中可能有多个React副本

我的代码:(非常简单)

import React,{useState}来自“React”;
函数登录(){
const[user,setUser]=useState({});
返回为什么错误;
}

导出默认登录函数本身没有错误。在其他文件的另一个组件中尝试了此操作。检查其他地方的错误。代码中的其他40行是什么


React的版本是什么?

这里的问题是如何呈现组件。你不能这样做:

Login()
但你可以做到:

<Login />

更新:同样,您不能执行以下操作:

<Route path="/login" exact render={Login} />

你需要:

<Route path="/login" exact render={() => <Login />} />
}/>

此链接可能会有所帮助:您实际渲染组件的位置在哪里?请尝试。。没有帮助我试图复制,我不明白你的错误。这对梅切克·科林斯有效回答,我试过他说的话,可以重现你的错误,你能解释一下原因吗@科林·李嘉图的逻辑和上面一样。如果你想呈现组件,而不是仅仅调用功能组件,那么你需要这样做。或者使用
component={Login}
,因为你现在不需要在那里使用
render
。是的,正如@devserkan所说!为什么组件={Login}可以工作而呈现={Login}不能工作?有什么区别@德夫塞尔坎