Lami
삶이 온통 사람의 길이니
Lami
전체 방문자
오늘
어제
  • 분류 전체보기 (165)
    • Elice (1)
      • 회고록 (1)
    • Git (0)
    • HTML ▪ CSS (4)
    • JavaScript (7)
      • BOJ (2)
      • Programmers (0)
      • Study Note (5)
    • TypeScript (0)
    • React (21)
      • Lecture (19)
      • Study Note (2)
    • Python (44)
      • CodeUp (38)
      • Programmers (0)
      • Study Note (6)
    • Modern Agile (80)
      • Tech Talk (7)
      • TIL (73)
    • 문제해결 (1)
    • 회고록 (5)
    • 도란도란 (2)

블로그 메뉴

  • Github

공지사항

  • 👋 안녕하세요!

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Lami

삶이 온통 사람의 길이니

React/Lecture

[Kossie Coder] react router 설치

2022. 1. 14. 20:54
npm install react-router-dom@6

위 버전으로 다운 받을 시 react-router 바뀐 문법으로 사용해야 함

Routes 사용 ⇒ Routes 안에는 <Route> 만 있어야 한다. 내용을 보여줘야 한다면 <Route> 안에 element={} 에서 🌟props🌟로 컴포넌트 보내기

// App.js

import React, { useState } from 'react';
import './index.css';
import Movie from './components/Movie';
import MovieForm from './components/MovieForm';
import Navbar from './components/Navbar';
import {
  BrowserRouter as Router,
  Switch,
  Route,
  🌟Routes, // 라우터 최신버전으로 다운 시 바뀐 부분🌟
} from 'react-router-dom';
🌟import MovieContainer from './components/MovieCotainer';🌟

function App() {
  const [movies, setMovies] = useState([]);

  const removeMovie = (id) => {
    setMovies(
      movies.filter((movie) => {
        return movie.id !== id;
      })
    );
  };

  const addMovie = (movie) => {
    setMovies([...movies, movie]);
  };

  return (
    🌟<Router>🌟
      <div className="App">
        <Navbar />
        🌟<Routes>
        <Route
            path="/movies"
            element={
              <MovieContainer
                movies={movies}
                removeMovie={removeMovie}
                addMovie={addMovie}
              />
            }
          />🌟
        🌟</Routes>🌟
      </div>
    </Router>
  );
}
export default App;
// MovieContainer.js

import Movie from './Movie';
import MovieForm from './MovieForm';

const MovieContainer = ({ movies, removeMovie, addMovie }) => {
  return (
    <>
      <h1>hda</h1>
      <MovieForm addMovie={addMovie} />
      {movies.length > 0 ? (
        movies.map((movie, idx) => {
          return <Movie key={idx} movie={movie} removeMovie={removeMovie} />;
        })
      ) : (
        <span>추가된 영화가 없습니다.</span>
      )}
    </>
  );
};

export default MovieContainer;

 

라우터 최신버전으로 설치 시 아래 코드 형태로 작성해야 함

<Router>
	<Routes>
		<Route />
		<Route />
	</Routes>
<Router>

 

강의를 따라가기 위해 다운그레이드한 버전

// package.json

"react-router-dom": "^5.3.0"

package.json에서 위와 같이 수정 후 터미널에서 npm install을 한다.

 

 

 

/* 유튜브 코지코더 채널에서 리액트js (Reactjs) 기초 익히기 기본 강좌를 보며 따라하다 문제가 생겼고,

그 문제를 해결한 과정을 기록한 글입니다.

https://youtube.com/playlist?list=PLB7CpjPWqHOuf62H44TMkMIsqfkIzcEcX */

'React > Lecture' 카테고리의 다른 글

[Kossie Coder] NavLink 사용하기  (0) 2022.01.15
[Kossie Coder] react router Switch, exact 속성  (0) 2022.01.14
[Kossie Coder] InputField 컴포넌트로 빼내기  (0) 2022.01.14
[Kossie Coder] 폼 입력 안 했을 시 에러문구 표시  (0) 2022.01.14
[Kossie Coder] 영화 삭제하기 - filter를 이용해서 삭제한 id 가 아닌 영화들 return하기  (0) 2022.01.14
    'React/Lecture' 카테고리의 다른 글
    • [Kossie Coder] NavLink 사용하기
    • [Kossie Coder] react router Switch, exact 속성
    • [Kossie Coder] InputField 컴포넌트로 빼내기
    • [Kossie Coder] 폼 입력 안 했을 시 에러문구 표시
    Lami
    Lami
    성장하는 즐거움을 알아가는 중입니다🌱

    티스토리툴바