inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

day17과제중 Context 객체생성 오류발생했습니다.

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

day17과제하던중에, Context 객체 생성하는데 오류가 발생했습니다. export를 붙여서 진행하면 화면과 같이 오류가 발생하고, export를 제외하면 랜더링할때 빈화면이 나옵니다. 다른컴퍼넌트에는 useContext이용해서 함수 공급받는거 작성했습니다. import "./App.css" import Header from "./components/Header" import ContactEditor from "./components/ContactEditor" import List from "./components/List" import {useState, useRef, useCallback, createContext, useMemo} from 'react' const mockData = [ //임시데이터라는 뜻(mockData) { id: 0, name: "이정환", email: "king32@gmail.com" }, { id: 1, name: "김정환", email: "queen25@gmail.com" }, { id: 2, name: "하정환", email: "prince13@gmail.com" }, ] export const ContactStateContext = createContext(); export const ContactDispatchContext = createContext(); function App() { const [contact, setContact] = useState(mockData); const idRef = useRef(3) const onCreate = useCallback((name,email)=>{ const newContact = { id: idRef.current++, name: name, email: email, }; setContact([newContact, ...contact ]); },[]); const onDelete = useCallback((targetId) => { setContact(contact.filter((it) => it.id!== targetId)); },[]) const memoizedDispatch = useMemo( ()=>({onCreate, onDelete}),[] ); return( <div className="App"> <Header /> <ContactStateContext.Provider value={contact}> <ContactDispatchContext.Provider value={memoizedDispatch}> <ContactEditor /> <List /> </ContactDispatchContext.Provider> </ContactStateContext.Provider> </div> ) } export default App;

  • react
  • day17
ddorri83 댓글 1 좋아요 0 조회수 66

인기 태그

인프런 TOP Writers

주간 인기글