728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.5 649.0

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.5
(18.5)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
202~221/304 MG+ 5.3

 


 

몇 번을 읽어도 모르겠는 문장 몇 개 빼고는 나름 수월하게 잘 읽혔던 것 같다.
2000시간, 3000시간 달성은..정말 멀구나 싶다..
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.0 647.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.0
(17.0)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
192~202/304 MG+ 5.3

 


 

겨우겨우 1시간을 채웠다...
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.5 646.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.5
(16.0)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
177~192/304 MG+ 5.3

 


 

오늘 읽은 부분은 굉장히 쉽게 잘 읽히는 부분이었다. 포기하지 말라는 신의 계시인가?!
일주일에 적어도 10시간은 읽어야 한다 생각을 했는데, 역시나 다른 일을 하고 있으면 쉽지 않다.
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.0 645.0

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.0
(14.5)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
172~177/304 MG+ 5.3

 


 

어째서인지... 내용이 점점 어려워지고 있다. 점점 이해 못 하는 장면들이 많아지고, 모르는 단어도 점점 많아진다. 모르는 단어들 덕분에 속도도 느려지고, 흥미도 잃어간다. 단어를 안 찾고 읽어나가자니, 내 맘대로 장면을 해석하게 되고,  점점 더 이해하기가 힘들어지는 악순환이 이어진다. 적절한 타협점을 찾아야 할 것 같다. 
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.5 644.0

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.5
(13.5)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
158~172/304 MG+ 5.3

 


 

어제보다는 조금은 나아졌다고 생각했는데, 전체적인 맥락을 놓쳐버리는 일이 생겨버렸다. 확실히 이전에 읽었던 Giver 시리즈보다 단어나 문장이 어렵다. 이 시리즈를 한번 읽고 나면 한 단계 아래로 내려가서 BL 4.5 ~ 5 단계의 책을 읽어야 할 것 같다.
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
2.0 642.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 2.0
(12.0)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
139~158/304 MG+ 5.3

 


 

목요일에 부스터 샷을 맞고 어제 죽은 듯이 잠만 자다 오늘 드디어 다시 원서 읽기를 했는데... 아.. 어려웠다. 확실히 그날의 컨디션에 따라 두뇌 회전 속도가 다른 것 같다. 아침에 일어나서 원서 읽기로 하루를 시작한다면 그날의 내 두뇌 컨디션이 어떤지 확실히  알 수 있을 듯하다.   
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.0 640.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.0
(10.0)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
126~139/304 MG+ 5.3

 


 

ING
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.0 639.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.0
(9.0)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
113~126/304 MG+ 5.3

 


 

ING
반응형
728x90

내가 어떤 페이지에 특정 데이터를 전달하고 싶은 경우, react에서는 일반적으로 부모자식 관계로 설정해서 props를 전달하게 된다. 

하지만 만약 부모자식 관계가 아닌데도 props를 전달해야 할 필요가 있을 경우에는 어떻게 데이터를 전달할까..

결론은 Link 컴포넌트를 이용하면 된다. 

 

아래와 같은 경우를 생각해보자.

Router.js가 아래와 같이 구성되어 있고, 

// Router.js
import React from "react";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Home from "./pages/Home";
import Main from "./pages/Main";

function Router() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/main" element={<Main />} />
      </Routes>
    </BrowserRouter>
  );
}

export default Router;

Home.js는 아래와 같이 로그인/회원가입 버튼을 누르면 /main 경로로 할당된 Main.js 컴포넌트로 가게끔 되어있다. 

// Home.js
import { Link } from "react-router-dom";

function Home() {
  return (
    <div>
      <Link to="/main">
        <button>로그인</button>
      </Link>
      <Link to="/main">
        <button>회원가입</button>
      </Link>
    </div>
  );
}

export default Home;

그런데 Main.js안에는 아래 사진 및 코드와 같이 useState를 사용해서 초기값을 true로 설정을 해줘서 Main.js가 렌더링 되면 무조건 SignIn.js가 렌더링 되게 되어있다.

Home.js에서 로그인 버튼을 누르면 로그인으로 페이지가 열리고, 회원가입 버튼을 누르면 회원가입 페이지가 열리게 하고 싶은데, 

만약 Home.js와 Main.js가 같은 페이지였다면, 부모자식 간에 props를 전달하는 방법으로 손쉽게 해결이 될 것 같다. 그런데 이 경우는 아예 다른 페이지이기 때문에 기존 방법으로는 props를 넘겨줄 수가 없다. 

// Main.js
import { useState } from "react";
import "./Main.scss";
import SignIn from "./SignIn";
import SignUp from "./SignUp";

function Main() {
  const [isLogin, setIsLogin] = useState(true);

  const onClickSignIn = (event) => {
    setIsLogin(true);
  };
  const onClickSignUp = (event) => {
    setIsLogin(false);
  };
  
  return (
    <div className="loginContainer">
      <div className="btns">
        <button className="btn" onClick={onClickSignIn}>
          로그인
        </button>
        <button className="btn" onClick={onClickSignUp}>
          회원가입
        </button>
      </div>
      {isLogin ? <SignIn /> : <SignUp />}
    </div>
  );
}

export default Main;

해결방법은 Main.js 파일의 isLogin state 초기값인 true를 Home.js의 회원가입 버튼을 눌렀을 땐, false로 변경되게끔 수정해주면 된다. 

즉, Home.js의 회원가입 버튼에 state false값을 실어보내주면 된다.

// 수정된 Home.js
import { Link } from "react-router-dom";

function Home() {
  return (
    <div>
      <Link to="/main">
        <button>로그인</button>
      </Link>
      <Link to="/main" state={{ signUp: false }}> // 수정된 부분(객체로 값을 전달해준다.)
        <button>회원가입</button>
      </Link>
    </div>
  );
}

export default Home;
// 수정된 Main.js
import { useState } from "react";
import { useLocation } from "react-router-dom"; // 추가된 부분
import "./Main.scss";
import SignIn from "./SignIn";
import SignUp from "./SignUp";

function Main() {
  const location = useLocation(); // 추가된 부분
  const signUp = location.state?.signUp; // 추가된 부분

  const [isLogin, setIsLogin] = useState(signUp === false ? false : true); // 수정된 부분

  const onClickSignIn = (event) => {
    setIsLogin(true);
  };
  const onClickSignUp = (event) => {
    setIsLogin(false);
  };

  return (
    <div className="loginContainer">
      <div className="btns">
        <button className="btn" onClick={onClickSignIn}>
          로그인
        </button>
        <button className="btn" onClick={onClickSignUp}>
          회원가입
        </button>
      </div>
      {isLogin ? <SignIn /> : <SignUp />}
    </div>
  );
}

export default Main;

 

결과는 아래와 같다. 

반응형

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

[React]Frontend 초기 세팅  (0) 2022.02.04
[React.js]React.memo() 알아보기  (0) 2021.12.26
[React]export와 export default의 차이  (0) 2021.11.30
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.0 638.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.0
(8.0)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
97~113/304 MG+ 5.3

 


 

큰 줄기는 잘 따라가는 것 같은데, 각 장면의 세세한 부분은 따라 잡기가 힘들다. 
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.5 637.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.5
(7.0)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
76~97/304 MG+ 5.3

 


 

잘 이해한 건지는 모르겠지만 굉장히 잘 읽힌다.
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.5 636.0

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
85 1.5
(5.5)
(Hunger Games Trilogy, Book 2)Catching Fire Suzanne Collins 2022.01.06 ~
ING
57~76/304 MG+ 5.3

 


 

재밌다!
반응형

+ Recent posts