묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
PostImages 이미지 length 오류
PostImages.jsimport React, { useCallback, useState } from 'react'; import PropTypes from 'prop-types'; import { PlusOutlined } from '@ant-design/icons'; import ImagesZoom from './ImagesZoom'; const PostImages = ({ images }) => { const [showImagesZoom, setShowImagesZoom] = useState(false); const onZoom = useCallback(() => { setShowImagesZoom(true); }, []); const onClose = useCallback(() => { setShowImagesZoom(false); }, []); if (images.length === 1) { return ( <> <img role="presentation" src={images[0].src} alt={images[0].src} onClick={onZoom} /> {showImagesZoom && <ImagesZoom images={images} onClose={onClose} />} </> ); } if (images.length === 2) { return ( <> <div> <img role="presentation" src={images[0].src} alt={images[0].src} width="50%" onClick={onZoom} /> <img role="presentation" src={images[1].src} alt={images[1].src} width="50%" onClick={onZoom} /> </div> {showImagesZoom && <ImagesZoom images={images} onClose={onClose} />} </> ); } return ( <> <div> <img role="presentation" src={images[0].src} alt={images[0].src} width="50%" onClick={onZoom} /> <div role="presentation" style={{ display: 'inline-block', width: '50%', textAlign: 'center', verticalAlign: 'middle' }} onClick={onZoom} > <PlusOutlined /> <br /> {images.length - 1} 개의 사진 더보기 </div> </div> {showImagesZoom && <ImagesZoom images={images} onClose={onClose} />} </> ); }; PostImages.propTypes = { images: PropTypes.arrayOf(PropTypes.shape({ src: PropTypes.string, })).isRequired, }; export default PostImages;Post.jsexport const initialState = { mainPosts: [{ id: 1, User: { id: 1, nickname: '제로초', }, content: '첫 번째 게시글', Images: [{ src: 'https://bookthumb-phinf.pstatic.net/cover/137/995/13799585.jpg?udate=20180726', }, { src: 'https://gimg.gilbut.co.kr/book/BN001958/rn_view_BN001958.jpg', }, { src: 'https://gimg.gilbut.co.kr/book/BN001998/rn_view_BN001998.jpg', }], Comments: [{ User: { nickname: 'nero', }, content: '우와 개정판이 나왔군요~', }, { User: { nickname: 'hero', }, content: '얼른 사고싶어요~', }] }], imagePaths: [], postAdded: false, }; const ADD_POST = 'ADD_POST'; export const addPost = { type: ADD_POST, }; const dummyPost = { id: 2, content: '더미데이터입니다.', User: { id: 1, nickname: '제로초', }, Images: [], Comments: [], }; export default (state = initialState, action) => { switch (action.type) { case ADD_POST: { return { ...state, mainPosts: [dummyPost, ...state.mainPosts], postAdded: true, }; } default: { return { ...state, }; } } };코드에 문제가 없는 것 같은데 위와 같이 에러가 뜹니다.post.js파일도 비교해보면서 찾아봤는데도.. 답이 안보입니다.ㅠㅠ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
state 중에 me: null
강의 진도 : 액션과 상태 정리하기state(=initialState) 중에 me: null 을 저희가 왜 만들어줬었죠?? 길을 잃었습니다. me가 무슨 정보는 담고 있는 걸까요..??
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
곧 mySQL 들어가기전에 질문입니다.
서버쪽도 타입스크립트 써도 되나요?? 프론트쪽 타입스크립트로 하고있어가지고요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
타입스크립트의 컴포넌트 import 절대경로
안녕하세요 멘토님항상 좋은 강의 잘 보고 있습니다.궁금한 점이 생겨서 문의를 드렸는데요,수업을 하면서는 몰랐는데 타입스크립트와 graphql-codegen에 대하여 강의를 들으면서 09-01 폴더를 10-01로 복사 후, 수업 후반부까지 import 부분에서 계속 빨간줄이 뜨길래 원인을 한참 찾았는데알고보니 저는 여태까지 컴포넌트를 import 할 때 절대경로를 사용하고 있었습니다. (import 할 때 자동완성 사용)왜 인지는 모르겠지만 .js 파일까지는 절대 경로를 사용해도 문제가 없었는데 타입스크립트로 변환을 하니까 여태 잘 사용하던 절대경로가 빨간줄이 계속 뜨고 상대경로를 입력하니까 빨간줄이 사라지더라구요.09-01 .js 실습 파일 (빨간줄 없이 정상작동)10-01 .tsx 실습 파일 (절대경로 - 빨간줄, 상대경로 - 정상 작동) 이렇게 JS에서는 되던 절대경로가 TS에서는 왜 안되는 것인지가 궁금하여 질문드렸습니다. 감사합니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
postman
postman 설치후 빈화면을 보여주라고 하시는데 저는 선생님이랑 다른 화면이 나오는데 어떤메뉴로 들어가야 하나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
yarn generate 오류
강의 보고 따라하는 중인데 yarn generate가 제대로 작동하지 않고 에러가 나옵니다
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
로그인 로그아웃 액션을 세세하게 나누는 이유가 궁금합니다.
안녕하세요.노드버드강의 saga 쪼개기 부분 강의 듣고 있습니다. 로그인을 요청, 성공, 실패 이렇게 세세하게 나누시는데 이유가 궁금합니다. 로그인 요청을 보내면 무조건 성공하는게 아닌건가요? 저는 LOG_IN_ACTION 액션에 isLoggedIn 만 true/false 왔다갔다 하면 될거 라고 단순하게 생각하고 있었는데 왜 굳이 이렇게 나눠서 해야 되는지 와닿지가 않습니다. 뒤쪽의 서버 강의 까지 들으면 이해가 갈까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
Docker 질문
소스코드에 server와 client에도 Dockerfile이 있던데 이걸로 Dockerlize가 되나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
module not found 오류
타입스크립트 버전을 강의 버전으로 맞춘 후node_modules와 yarn.lock 지우고yarn install 후 yarn dev 했습니다.에러는 그대로입니다.콘솔 에러메시지구요, 요 문제 해결을 못해서다음으로 진행을 못하고 있네요 ㅠㅠ 도와주십숑..
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
아래 문제..
class 폴더에서 했던 작업과 동일하게 타입스크립트 설치를 하였는데 저런 현상이 발생합니다..vscode 재실행 서버 재실행 해도 같은 현상이구요, 현재는 class 폴더 yarn dev를 해도 같은 현상이 나타납니다..따로 건든건 없고 강의에서 하던대로 했습니다. package.lock.json 파일 지우고 yarn.lock 파일 지우고 node_modules 폴더 지우고 yarn install 후 yarn dev 했구요 어떤 문제인지 잘 모르겠습니다..
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
freeboard_frontend 포폴 폴더에 타입스크립트 설치 후 오류
이렇게 뜨는데 어떻게 해결해야할까요 ㅠㅠ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
강의 진행을 어떻게 하는게 좋을까요?
안녕하세요 노션에 퀴즈나 포트폴리오를 풀어오는걸 숙제로 내주셨는데 내용이 많더라고요 난이도는 못할 수준은 아니긴한데 시간이 많이 걸리더라고요 시간이 많으면 다 풀어보겠는데 퀴즈는 힘들것같더라고요 ㅠㅠ 수업에 포트폴리오 리뷰가 있어서 포트폴리오 제작은 무조건 해야할것같은데 퀴즈 같은 경우에는 못풀면 수업에 지장이 있을까요? 시간이 없는게 아쉽네요...
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
next 13버젼 관한 질문
제로초쌤 이제 백엔드 로직 끝내고 SSR 적용하기 위해서 next 진행하려하는데 next 13버젼이 기존 12버전 문법에서 새로운 문법이나 터보팩이 등장한걸로 알고 있는데 12버전과 배우면서 13버전의 문법도 같이 병행하면서 진행하는게 좋겠죠..!?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
노션페이지
혹시 노션페이지는 강의에서 보여주시는것과 공유해주신게 다를까요??메뉴도 다르고 피그마는 어디서 들어갈수있는지 궁금합니다 ㅠㅠ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
리엑트 구조 및 폴더구조와 emotion 강의
리엑트 구조 및 폴더구조와 emotion 강의를 듣고 있는데요.. 설명대로 똑같이 설치했는데 선생님 index.js에 보이는 내용과 내꺼랑 다른데 왜그럴까요...?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
PostCard import 오류
import 문제 없어 보이는데 댓글 확인을 누르면 오류 페이지가 뜹니다..PostCard.jsimport React, { useState, useCallback } from 'react'; import { Card, Button, Avatar, Popover, List, Comment } from 'antd'; import PropTypes from 'prop-types'; import { RetweetOutlined, HeartTwoTone, HeartOutlined, MessageOutlined, EllipsisOutlined } from '@ant-design/icons'; import styled from 'styled-components'; import Link from 'next/link'; import { useSelector } from 'react-redux'; import PostImages from './PostImages'; import CommentForm from './CommentForm'; const PostCard = ({post}) => { const [liked, setLiked] = useState(false); const [commentFormOpened, setCommentFormOpened] = useState(false); const id = useSelector((state) => state.user.me && state.user.me.id); const onToggleLike = useCallback(() => { setLiked((prev) => !prev); }, []); const onToggleComment = useCallback(() => { setCommentFormOpened((prev) => !prev); }, []); return ( <div style={{matginBotton: 20}}> <Card cover={post.Images[0] && <PostImages Images={post.Images}/>} actions={[ <RetweetOutlined key="retweet"/>, liked ? <HeartTwoTone twoToneColor="#eb2f96" key="heart" onClick={onToggleLike} /> : <HeartOutlined key="heart" onClick={onToggleLike} />, <MessageOutlined key="message" onClick={onToggleComment} />, <Popover key="more" content={( <Button.Group> {id && post.User.id === id ? ( <> <Button>수정</Button> <Button type="danger">삭제</Button> </> ) : <Button>신고</Button>} </Button.Group> )}> <EllipsisOutlined/> </Popover>, ]} > <Card.Meta avatar={<Avatar>{post.User.nickname[0]}</Avatar>} title={post.User.nickname} description={post.content} /> </Card> {commentFormOpened && ( <div> <CommentForm post={post}/> <List header={`${post.Comments.length}개의 댓글`} itemLayout="horizontal" dataSource={post.Comments} renderItem={(item) => ( <li> <Comment author={item.User.nickname} avatar={<Avatar>{item.User.nickname[0]}</Avatar>} content={item.content} /> </li> )} /> </div> )} </div> ); }; PostCard.propTypes = { post: PropTypes.shape({ id: PropTypes.number, User: PropTypes.object, content: PropTypes.string, createdAt: PropTypes.object, Comments: PropTypes.arrayOf(PropTypes.any), Images: PropTypes.arrayOf(PropTypes.any), }), }; export default PostCard
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
freeboard_frontend폴더는 어떻게 다운받나요? ㅠ
1. "codecamp-frontend-이름" 폴더에 "freeboard_frontend"이름의 Next.js 프로젝트 설치하기2. "freeboard_frontend" 폴더를 만들고 수업프로젝트(class 폴더)와 동일한 순서로 똑같이 설치하기어떻게 하나요? ㅠ
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
시퀄라이즈 관계메소드를 두번 사용하는 경우
const images = await Promise.all( req.body.image.map((image) => Image.create({ src: image })) ); await post.addImages(images); 이런식으로 Image.create() 를 적용한 다음다시 post.addImages() 하는 이유가 뭔가요? 중복된 실행이라고 생각했는데 실행해봤을때는 중복된 튜플이 생성되지는 않네요..
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
localhost 오류
첫번째 포트폴리오를 작성하던중, 경로를 boards/new로 이동하면 자꾸 저런 문구가 뜨며 오류가 발생합니다
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
aws 질문입니다.
안녕하세요!혹시 강의 대로 진행하면 요금은 따로 청구되지 않는걸까요? 예전에 요금 폭탄을 맞은적이 있어 혹시 몰라 질문드립니다!ㅜㅜ