묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
글 작성시 UserID가 DB에 저장안되는 이슈
안녕하세요~ 글 작성시 UserID가 DB에 저장안되는 이슈가 있어서 질문드립니다. 게시글을 작성 후에 TypeError: Cannot read properties of null (reading 'nickname') 에러가 납니다. 지금까지 해본 것 1. 다른 답글에 적어주신 내용처럼 router/post.js 쪽에서 req.user.id를 확인해보았습니다. 위에 사진처럼 작성자의 아이디가 나왔습니다. 2. MySQL의 DB에 보니까 UserId가 올라오고 있지 않습니다. 3. res.send로 받은 result를 console.log를 찍어보니까 UserId가 없었습니다. 4. MySQL 에 UserId를 직접 입력 (1) 해보니까 에러 없이 잘 나왔습니다. 제 생각에는 Model에서 에러가 발생한 것 같습니다. 깃허브에 올려주신 것을 보니까 5버전에 클래스로 하신 코드이신데 강의에서는 위와 같이 사용중이라서 참고를 해보았으나 DB 등록시 UserId가 입력이 안되는 것 같습니다.알려주신대로 기능 추가시 흐름을 정리해서 보면서 생각해보니까 여기까지는 에러가 왜 낫는지 알겠는데 몇시간을 고민해도 버그가 수정이 안되서 송구스러운 마음을 가지고 질문드립니다. 깃허브 주소 : https://github.com/hyunjoogo/react-nodebird
-
미해결
react native navigation 오류 해결 방법 문의
react native 네비게이션 설치를 하고 시뮬레이터 기동 시 오류가 발생하는데 해결방법 아시는분 계시나요ㅠㅠ os 업데이트 해보고 dependencies 삭제하고 재설치 해봐도 오류가 발생하는데 어떻게 해결해야 할까요.. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
마지막 강의에서 만난 오류 두가지 해결과정
여태껏 다른 분들이 달아주신 댓글을 종합해서 정리해봤습니다 # 1. 첫번째 오류 - v6 오류 Warning: Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it. 이 오류는 v6에서 element 내부에 Auth 지원이 안되어서 생기는 오류 같습니다 ## 1-1. 해결방법 ### 1-1-1. App.js element 수정하기 <BrowserRouter> <Routes> <Route exact path="/" element={Auth(LandingPage, null)} /> <Route exact path="/login" element={Auth(LoginPage, false)} /> <Route exact path="/register" element={Auth(RegisterPage, false)} /> </Routes> </BrowserRouter> 여기서 Auth를 모두 지우고 컴포넌트를 넣으세요 <BrowserRouter> <Routes> <Route exact path="/" element={<LandingPage />} /> <Route exact path="/login" element={<LoginPage />} /> <Route exact path="/register" element={<RegisterPage />} /> </Routes> </BrowserRouter> (이렇게) ### 1-1-2. 각 컴포넌트 export 위치에 Auth를 감싸기 export default LoginPage; export default LandingPage; export default RegisterPage; 지금 LoginPage, LandingPage, RegisterPage의 export가 그냥 이렇게 되어있을 겁니다 이자리에서 Auth로 감싸줄 겁니다 export default Auth(LoginPage, null); export default Auth(LandingPage, false); export default Auth(RegisterPage, false); 이렇게 변경하시면 됩니다 그리고 강의 중에 작성하는 모든 props.history는 import { useNavigate } from 'react-router-dom' let navigate = useNavigate() navigate('/login') navigate('/') 로 작성하시면 됩니다 # 2. 두번째 오류 - auth.js의 액션 이름 괄호 놓침 Uncaught TypeError: (0 , _actions_user_action__WEBPACK_IMPORTED_MODULE_2__.auth)(...).then is not a function 이런 오류가 뜨면서 백지가 나타났는데 오류 의미를 몰라서 한참 찾았습니다 ## 2-1. 해결방법 React.useEffect(() => { dispatch(auth().then(response => { console.log(response) })) }, []) 이렇게 되어있었는데, (auth().then()) 가 아니라 (auth()).then() 입니다 React.useEffect(() => { dispatch(auth()).then(response => { console.log(response) }) }, []) 찾기 힘든 오타라 저는 한참 찾았어요.... 조심하시길.... # 3. 세번째 오류 - 이유를 알 수 없는 504 서버에러 이건 그냥 빡쳐서 자고 다음날 하니까 해결 됐습니다 정 안되면 다음날 해보세요
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
reactQuery + graphql 흐름 질문.
reactQuery에대해서 graphql을 호출하는 과정에있어서 에매한 부분이 있는것같아 나름대로 정리를 해봤습니다... 혹시 제가 잘못 이해하고있는 부분이 있을까요!!?? 1. graphql를통한 데이터 불러오기 흐름. (+next.js 서버사이드 렌더링 가정) 1) 서버사이드 렌더링에의해 불러오는 데이터를 hydrate를통해 클라이언트측 cache에 저장시킨다. 2) 최초접속시 useQuery를통해 데이터를 요청하지만, 우선은 당장 cache에 존재하는 데이터를 보여준다. 3) 이후 useQuery를 통해 데이터를 가져왔을떄 기존에 cache에 존재하는 데이터와 비교후, 바뀐부분만 교체시킨다. 4) 이후 새로고침이 발생했을떄 cache에서 데이터를 가져오게됨으로써 빠른 렌더링을 구현 할 수 있게된다. 2. graphql를통한 생성, 업데이트, 제거 흐름. 1) 우선 useMutation을통해 필요한 정보들을 fetcher를 태워 graphql요청을 보낸다. 2) 이후 성공하게되면 client.setQueryData를통해 클라이언트측 cache에 접근하여 데이터를 업데이트 시킨다. 3) 이과정에서 QueryKeys.MESSAGES를 통해 클라이언트측 cache에 접근하여 데이터를 업데이트하게됨으로, 최초 useQuery를통해 불러온데이터가 변경된것과 동일함으로 useEffect의 dependency Array에 전달된 data.messages가 변경된것으로 인식하여, setMsgs가 호출된다. 4) 이과정에서 useQuery의 fetcher는 호출되지않는다. 3. 클라이언트측 cahce를 눈으로 확인할 수 있는 방법이있을까요?(단순히 개발자 도구에서의 애플리케이션탭의 cache부분에서는 확인이 안되는것같아 질문드립니다..!) 또한 이부분이 리덕스의 스토어 역할을 한다고 생각해도되는지 궁긍합니다!
-
미해결오픈 소스 자바스크립트 React 프로그래밍 입문 Part.1
1강 login 페이지 들어갈 시 오류 해결방법이 있을까요
오류 화면 첨부합니다 . 혼자 해결하기엔 초급자라 어려움이 있습니다 . 혹시 해결방법 아시는분 있으면 공유부탁드립니다 ㅠㅠ
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
리액트 query 질문
클라이언트에서 리액트 쿼리를 활용하여 graphql을 다루는 이유가 있으신가요? 리액트 쿼리를 활용하지않고 graphql를 다룰 수 있는지도 궁금합니다!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Code Sandbox 문의
안녕하세요 선생님, 오늘 처음으로 수강듣게되었네요. 이 단계에서부터 질문을 드리게 될줄 몰랏는데, codesandbox 에서 실행을하려니, installing dependencies 가 계속 진행되면서 retrying package fetch 가 console 에서 지속 반복되네요ㅠ 이걸 해결할 방법이 있을까요? 없다면, 앞으로 수업은 어떻게 듣는게 좋을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
데이터베이스 못찾으시는 분들
UI가 업데이트된건지 강사님과 화면이 다르네요 아래 화면에서 프로젝트 이름 (저는 boilerplate) 누르면 나오는 화면에서 collections 누르시면 나옵니다 1. 프로젝트 이름 클릭 2. collections클릭
-
미해결프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 1
gzip 방법 문의 드립니다.
안녕하세요. 개인 프로젝트를 수정해보고 있습니다. 만약 react public 폴더에 100kb json 파일이 있고, A component에서 fetch로 해당 데이터를 가져와 사용한다면 어디서 해주는 것이 맞는 방법인가요? (아래 질문을 통해 유추해보았는데 만약 s3에 프론트 코드가 있으면 s3에 해주어야 하는 것인가요?) 그럼 이 경우에는 local에서는 테스트를 해볼 수 없는 걸까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
인피니티 스크롤 시 데이터 일부를 가져오지 못하는 문제
채팅방에서 새로운 데이터를 입력한 후, 스크롤을 위로 올려 다음 페이지를 로드하면 다음 페이지 값의 일부가 사라져서 출력되는 것 같습니다. 사진에서 5를 새로 입력했습니다. 그리고 나서 위에 닿을 때까지 천천히 스크롤하여 새로운 페이지를 불러오면 8 다음에 있어야 할 9를 불러오지 못했습니다. 테스트는 강좌 깃헙의 front 폴더와 back 폴더에 있는 코드로 진행 했습니다. 버그인 것인지, 페이지를 불러오는 과정에서 문제가 생긴건지 궁금합니다ㅠㅠ..
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
Query 중첩 질문.
강의 8분부터 schema폴더에서 index,js를 구성하는과정에서 질문드립니다! query ,mutation의 중복을 피하기위해 linkSchema를 정의해서 type Query, type Mutation을 의미없는 값을 설정후에 extend를 사용하면 중복을 피할 수 있다 라고 이해를 했는데 이게 message.js, user.js라는 각각분리된 파일안에서 query가 정의되어도 중복이 발생해서 이렇게 설정해주신건가요??
-
해결됨[React 1부] 만들고 비교하며 학습하는 React
강의 설명란 오타 수정
git checkout -f ready/tab-view-2 가 아니라 git checkout -f ready/tab-2로 변경되어야 할 거 같습니다
-
해결됨프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 2
useRef로 dom을 선택한 부분이 img태그가 아닌 최상단 div태그인 이유가 궁금합니다.
안녕하세요! 강사님 질문드립니다.useRef로 img의 dom을 선택하는데 ref를 img태그(19번)가 아닌상단의 div태그(18번)의 ref를 걸으신 이유가 따로 있는걸까요? 아니면 둘다 똑같은건가요? 저는 당연히 img태그의 ref를 걸어야한다고 생각했어서 질문드려요! (19번라인) 앗 죄송해요 22분 22초경에 img태그로 ref위치 수정하시네요!!.. 답변안해주셔도될것같습니다~ 좋은강의 만들어주셔서 감사합니다
-
해결됨Redux vs MobX (둘 다 배우자!)
mobx makeAutoObservable 과 mobx로 비동기처리해야될때 질문입니다.
class Store{ repository; rootStore; num = 0; constructor(repository,rootStore){ makeAutoObservable(this); this.repository = repository; this.rootStore = rootStore; } addnum = ()=>{ num++; } } mobx makeautoObservable 관련 질문입니다. 대충 이런식으로 store 가 있는데 makeAutoObservable이 알아서 action 이랑 observable을 지정해줍니다. 1-1. respository와 rootStore는 observable 하게 하고싶지 않은데 mobx devtools를보니 repository와 rootStore를 감지하고 있더라고요 특정 변수 또는 함수를 autoObservable 에 제외시킬수 있나요? repository 나 rootStore 앞에 private 키워드를 줘봤는데도 감지하고 있었습니다. 1-2. 위처럼 메모리에 불필요한 상태값까지 감지하게되면 나중에 state 가 커지면 성능과 메모리 차지에 큰 영향을 끼칠까요? mobx로 비동기 처리해야될때 질문입니다. 네트워크 요청해서 데이터를 보여줘야되는데 리스트로 항목 4개 보여주고 화살표로 다음 페이지버튼 보거나 이전페이지 버튼 보게 하고 있습니다. 다음페이지로 넘기면 네트워크 요청하고 응답받으면 데이터를 보여주게되고 요청을 날릴때는 빈화면이고 요청에대한 응답을 받았을때 데이터를 뿌려줘야됩니다. <button onClick = {()=>store.loadPrevious()}>previous</button> {store.listData && <MyListComponent data={store.listData.slice(store.page*4,store.page+4)}/>} <button onClick = {()=>store.loadNext()}>next</button> 이런식으로 store.listData 가 있을때 컴포넌트가 나오게 했습니다. 첫화면 로딩시 즉 useEffect() 에서 요청날렸을땐 제대로 동작하는데 다음페이지 버튼을 누르면 이미 store.listData는 이미 null이 아니기떄문에 네트워크요청 응답을 받기도전에 화면을 넘겨서 데이터를 제대로 뿌려주지를 못합니다. 2-1. 이런경우는어떻게 처리하는게 좋을까요?
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
Post 챕터 Read (1) 강의에서 axios 안되시는 분들 정보 공유합니다
백단에서 post요청 then().catch() 설정한 후 클라이언트 List.js에서 axios로 /api/post/list 포스트 요청하고 콘솔창 확인해보면 400 에러가 뜨는데 일단 서버폴더 Model/Post.js에서 스키마 부분 Collection : "posts"로 바꾼 다음에 다시 새로고침 해보니깐 postList 데이터 콘솔창에 찍힙니다 초반강의 몽구스 설정할 때 collation : "posts"로 하셨는데 오타인지 궁급합니다!
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
파일 읽어오기 질문..
1. routes/messages.js 2. dbController.js 질문.. 1. console.log로 확인해보면 undefined가 출력되는걸로 봐서 파파일을 못읽어오는거같은데 원일을 못찾겠습니다.. (DB파일의 아이디는 문자열로 바꿨습니다!) 2. 유력한 후보가 경로설정을 잘못해줘서 그런거같은데 basePath를 설정하는과정에서 resolve()가 정확히 무슨 뜻인가요?? 경로를 문자열로 바꿔주는걸로 알고있는데 resolve(basePath, ...); 이렇게 작성된 부분을 해석을 못하겠습니다..
-
해결됨프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 2
맨마지막~
31분 52초 화면만 보고 질문 드립니다 :) photos를 외부로 옮긴 다음 PhotoList의 프롭으로 photos를 넘기게 되면 PhotoList 입장에서는 프롭이 변경된것이라고 판단 되어서 리렌더링이 될 것이라고 생각했는데 PhotoListContainer자체가 photos의 필터 연산을 외부로 옮기는 방식으로 리렌더를 하지 않기 때문에 자식 컴포넌트 자체도 리렌더링이 안되는 것이 되는 건가요?
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
userid 미인식문의
안녕하세요 .선생님. URL의 userid 값을 인식못하는 문제가 있네요 ㅜㅜ MsgList.js에서 const userId값을 제대로 받지 못하는것 같습니다. messages.json 파일에는 제대로 들어있는데 못가져오는것 같습니다. 살펴보았는데 제 실력으로 파악이 좀 어렵네요 ㅜㅜ 시간되실때 한번만 살펴봐주시면 감사하겠습니다. https://github.com/imslee100/React-API/tree/67a6b99f164818ed89ac8ff71a2b8be79ff2c8c5
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
웹소켓 관련 개념질문입니다.
안녕하세요. 현재 "DM채팅하기" 강의를 진행하기 전에도 시크릿모드로 두개를 띄워서 해보면 지금도 채팅 통신이 가능한데 이상태에선 계속 서버로 보냈다가 다시 가져오고 그런 상태이기 때문에 소켓통신으로 바꾸려고 socket.on 을 추가하는 것인가요? 그러니까 useEffect(()=>socket?.on('dm', onMessage) 이부분을 하는 이유가 http프로토콜을 소켓 프로토콜로 바꾸는 개념인가요? 동작 방식이 좀 헷갈리네요.. 제가 이해한 부분이 맞을까요?
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
SCSS 미적용문의
안녕하세요 .선생님. 2번이나 따라해보았는데 SCSS가 적용이 되지 않는것 같습니다. ㅜㅜ 한번만 봐주실 수 있을까요? https://github.com/imslee100/React-API/tree/43ff3052029174f878762fa0544dfdc031f118fe