본문으로 바로가기

 

토이 프로젝트에서 Route를 사용할 일이 있어 사용하는데 아래와 같은 에러가 발생하였습니다.

Uncaught Error: useRoutes() may be used only in the context of a <Router> component.

 

 

[에러 원인]

Uncaught Error: useRoutes() may be used only in the context of a <Router> component.라는 에러를 해석해보면 useRoutes는 <Router>로 감싸야한다고 합니다. 저는 감싸지 않고 사용해서 에러가 발생한 거였습니다.

root.render(
  <React.StrictMode>
    <Provider store={store}>
      <Header>
        <Routes>
            <Route path="/Main" element={<Main/>} />
            <Route path="/Register" element={<Register/>} />
        </Routes>
      </Header>
    </Provider>
  </React.StrictMode>
);

 

 

[해결 방법]

먼저 BrowserRouter as Router를 추가해주고 Route를 Router로 감싸주시면 에러가 해결될 것입니다.

import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
root.render(
  <React.StrictMode>
    <Provider store={store}>
      <Header />
      <Router>
        <Routes>
          <Route path="/Main" element={<Main/>} />
          <Route path="/Register" element={<Register/>} />
        </Routes>
      </Router>
    </Provider>
  </React.StrictMode>
);