簡體   English   中英

反應路由器:無效的鈎子調用。 鈎子只能在 function 組件的主體內部調用

[英]React Router: Invalid hook call. Hooks can only be called inside of the body of a function component

我有一個普通的反應應用程序,使用反應路由器。 嘗試在 Box.js 中獲取 url 參數時,我收到此錯誤:無效的掛鈎調用。 鈎子只能在 function 組件的主體內部調用。 這是代碼:

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();

應用程序.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;

導出時不應調用 function。

import React from 'react'
import { useParams } from "react-router-dom";

function Box()
{
    let params = useParams();
    return (
        <div>
            <h1>{params}</h1>
        </div>
    )
}
export default Box;

從導出部分中刪除()

import React from 'react'
import { useParams } from "react-router-dom";

function Box(){
    let params = useParams();
    return (
        <div>
            <h1>{params}</h1>
        </div>
    )
}
export default Box;

如果您使用 npm 鏈接或任何其他庫,您的捆綁器可能會看到兩種不同的反應並顯示該錯誤, 請參見此處

或者您可以刪除 ()

import React from 'react'
import { useParams } from "react-router-dom";

function Box()
{
    let params = useParams();
    return (
        <div>
            <h1>{params}</h1>
        </div>
    )
}
export default Box();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM