Error: [Home] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>
리액트를 처음 공부하는 거라
클론 코딩을 통해 공부를 하다 보니 이런 오류가 떠서 막혔습니다.
해당 오류는 Routes 컴포넌트 안에는 자식 요소로 Route 또는 React.Fragment만 들어갈 수 있다는 뜻으로,
그 외에 코드가 들어가게 되면 오류가 뜹니다.
기존 코드같은 경우는 Switch를 이용하였는데 업데이트가 되면서 Switch대신 Routes를 사용한다고 합니다.
이후에 Route 컴포넌트 내에 element 속성을 이용해서 원하는 컴포넌트를 넣게 됩니다.
기존 오류 코드
1
<Switch>
{isLoggedIn ? (
<>
<Route exact path="/">
<Home/>
</Route>
</>
) : (
<Route exact path="/">
<Auth />
</Route>
)}
</Switch>
2
<Routes>
{isLoggedIn ? (
<>
<Route exact path="/" element={<Home/>}>
<Home/>
</Route>
</>
) : (
<Route exact path="/" element={<Auth/>}>
<Auth />
</Route>
)}
</Routes>
여기에 Route 부분 안쪽에 <Home/> 또는 <Auth/>가 없어야 합니다.
변경 완료
<Router>
<Routes>
{isLoggedIn ? (
<>
<Route exact path="/" element={<Home/>}>
</Route>
</>
) : (
<Route exact path="/" element={<Auth/>}>
</Route>
)}
</Routes>
</Router>
'프로그래밍 > JavaScript' 카테고리의 다른 글
JavaScript 타이머 구현 setInterval (0) | 2023.02.08 |
---|---|
javascript 스크롤 이동 / 자바스크립트 스크롤 이동 / scrollIntoView (0) | 2022.01.13 |
JavaScript 함수선언 방식 (익명함수) / addEventListener 이벤트 (0) | 2021.09.14 |
JavaScript var let const 차이점 (0) | 2021.09.14 |
visual Studio Code 한글 설정 / 비주얼 스튜디오 한글 설정 및 유용한 확장 플러그인(htmltagwrap) (0) | 2021.08.24 |