Context API 활용법

Gong Kang·2024년 2월 9일
0

Next.js

목록 보기
3/3

Context API 활용법 정리

context 생성하는 방법

export const TermsContext = createContext({
  essentialCheck: false,
  handleEssentialCheck: () => {},
})

const BusinessRegistration = () => {

  
  // 필수 약관 체크 여부
  const [essentialCheck, setEssentialCheck] = useState(false)


  const clickFunc = () => {
    console.log(essentialCheck)
  }

  const handleEssentialCheck = () => {
    setEssentialCheck((prev) => !prev)
  }

  return (
    <TermsContext.Provider value={{essentialCheck, handleEssentialCheck}}>
      <div className={styles.container}>
        <span className={styles.title}>아인잡에서 채용을 시작하세요!</span>
        <div className={styles.registrationDiv}>
          {/* 사업자등록 번호 */}
          <div className={styles.registrationNumDiv}>
            <div className={styles.numTop}>
              <span className={styles.numTitle}>사업자등록번호</span>
              <span className={styles.noNum}>사업자번호가없어요</span>
            </div>
            <input
              className={styles.numInput}
              type={'text'}
              placeholder={'사업자 등록번호 직접입력'}
            />
          </div>
          {/* 약관 */}
          <BusinessTerms/>
          <button onClick={clickFunc}>완료</button>
        </div>
      </div>
    </TermsContext.Provider>
  )
}

export default BusinessRegistration;

context 변경하는 부분

const { handleEssentialCheck } = useContext(TermsContext)

  const handleChecked = (callback: SetStateCallback) => {
    callback((prev) => !prev)
  }

  useEffect(() => {

    if(essential1 && essential2 && essential3){
      handleEssentialCheck()
    }else{
      handleEssentialCheck()
    }

  }, [essential1, essential2, essential3])
profile
꾸준히 하루에 한번씩..!

0개의 댓글