React Router:无效的钩子调用。钩子只能在函数组件的主体内调用
2021-12-29
205
我有一个普通的 React 应用,使用 React Router。尝试在 Box.js 中获取 url 参数时,我收到此错误: 无效的钩子调用。钩子只能在函数组件的主体内调用。 这是代码:
Box.js
import React from 'react'
import { useParams } from "react-router-dom";
function Box()
{
let params = useParams();
return (
<div>
<h1>{params}</h1>
</div>
)
}
export default Box();
App.js
import
{
Routes,
Route
} from "react-router-dom";
import Box from './Box';
function App()
{
return (
<div className="App">
<Routes>
<Route exact path="/palette/:id/:color" element={<Box />} />
</Routes>
</div>
);
}
export default App;
3个回答
导出时不应调用函数。
import React from 'react'
import { useParams } from "react-router-dom";
function Box()
{
let params = useParams();
return (
<div>
<h1>{params}</h1>
</div>
)
}
export default Box;
Akshay Dhankar
2021-12-29
从导出部分删除
()
import React from 'react'
import { useParams } from "react-router-dom";
function Box(){
let params = useParams();
return (
<div>
<h1>{params}</h1>
</div>
)
}
export default Box;
Jamal
2021-12-29
如果您使用的是 npm link 或任何其他库,您的捆绑器可能会看到两个不同的反应并显示错误 参见此处
或者您可以删除 ()
import React from 'react'
import { useParams } from "react-router-dom";
function Box()
{
let params = useParams();
return (
<div>
<h1>{params}</h1>
</div>
)
}
export default Box();
alhasan
2021-12-29