[CHAM] 하위 컴포넌트에서 값 받아오기, 주기

2022. 10. 19. 01:49·개인프로젝트/CHAM
728x90
반응형

하위 컴포넌트에서 set함수를 받아 부모 컴포넌트의 state값을 변경해주려고 한다.

redux를 이용하면 너무 양이 많아질것 같고 props로 넘기기엔 부모와 자식간의 사이에 컴포넌트들이 많았다.

그래서 좀더 효율적인 방법이 없을까 고민하다가 useContext라는 훅을 찾아냈다.

 

1. useContext

useContext는 부모에서 하위컴포넌트로 값을 전달할 수 있다.

기존 props와 다른 점은 중간다리 역할이 없어도 멀리 있는 하위 컴포넌트에 곧바로 전달할수 있다는 점이었다.

이를 사용하면 redux관리, props관리도 쉬울것 같아서 useContext를 쓰기로 생각했다.

 

2. useContext 사용법

(1) : useContext로 데이터 보내기

useContext에서 전달하는 값은 '객체'이다.

먼저 Context객체를 만들어 export해서 내보낸다.

import { useContext } from "react";
export const MakeReview = createContext();

그 다음 선언한 변수로 컴포넌트를 만들고 value값을 전달해준다. 이때 .Provider를 붙여 주어야 한다.

<MakeReview.Provider key={2} value={{ setReview, setReviewData }}>
  <MyPageOrder />
</MakeReview.Provider>

(2) : useContext로 데이터 받기

컴포넌트 불러오기

import { useContext } from "react";
import { MakeReview } from "../../MyPageModal";

전달받은 데이터 불러오기

const { setReview, setReviewData } = useContext(MakeReview);

useContext는 훅이므로 함수안에 작성해야 한다.

 

728x90
반응형

'개인프로젝트 > CHAM' 카테고리의 다른 글

[CHAM] function 실행 오류  (0) 2022.10.20
[CHAM] redux에서 지속적인 로그인 체크  (0) 2022.10.19
[CHAM] image 올리기  (0) 2022.10.14
[CHAM] 드래그 슬라이드 만들기  (1) 2022.10.13
[CHAM] label 위치 옮기기  (0) 2022.10.12
'개인프로젝트/CHAM' 카테고리의 다른 글
  • [CHAM] function 실행 오류
  • [CHAM] redux에서 지속적인 로그인 체크
  • [CHAM] image 올리기
  • [CHAM] 드래그 슬라이드 만들기
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    nodejs
    하이퍼레저
    30일 챌린지
    go
    node.js
    node
    js
    go언어
    CSS
    mysql
    erc20
    프로그래머스
    React
    명령어
    html
    도커
    30일챌린지
    블록체인
    컨테이너
    ERC721
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[CHAM] 하위 컴포넌트에서 값 받아오기, 주기
상단으로

티스토리툴바