리액트
24. 05. 31 TIL (context api)
효ㄷi
2024. 5. 31. 23:08
코드를 다 짰는데 다 짠 게 아니다.
이제 useContext 활용해서 다시 수정해야 됨...
근데 난 아무것도모르는덷어떻게하라고요?.......
그ㅐ서 이것저것 찾아보다가 더 모르겠어서 강의보고 따라서 해봤다.
먼저 파일 하나를 만든다.
context 폴더를 만들고 나서 context.js 파일을 만들어야 한다.
import { createContext } from 'react';
export const BudgetContext = createContext(null);
그리고 이렇게 적어줌.
이제 상위 라우터 파일에 가서 이러코롬 가져와준다.
import { BudgetContext } from '../context/BudgetContext';
그 담에 useState로 만든 상태들을 다른 컴포넌트에서 사용하기 위해
return (
<BudgetContext.Provider
value={{
saveMonth,
setSaveMonth,
itemList,
setItemList,
MonthSaveFunc,
}}
>
provider (하위 컴포넌트에 전달) 를 쓰고, value로 값들을 전달하는 것.
이제 쓰였던 props는 삭제해준다. (속시원)
이제 쉬운 게 저 state들을 사용하고 싶다?
바로 하위 컴포넌트로 갓.
import { BudgetContext } from '../context/BudgetContext';
요고랑.
const { saveMonth } = useContext(BudgetContext);
요고 넣어서 saveMonth 가져왓.
useContext로 budgetcontext에서 saveMonth를 가져와준다.
근데
처음ㅇ ㅔ실행이 안 되는 것이었다...
아니 왜?...
뭐가 문제지 싶어서 콘솔 보고 코드 뚫어져라 쳐다봤는데 딱히
없는 것 같고...?
근데 알고보니!!!!!!!!!!!!!!!!!!
세미콜론을 안 붙여서.
const { saveMonth } = useContext(BudgetContext)
...................................