월 59,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
04-03-graphql-mutation-args 에서 작성한 게시글을 확인하려고 합니다.
useState로 number를 만들어서 createBoard로 작성한 게시글의 번호를 저장해두고그 number를 variables로 넣어서 내용을 확인하려고 합니다.import { gql } from "@apollo/client"; import { useQuery } from "@apollo/client"; import { useMutation } from "@apollo/client"; import React, { useState } from "react"; const CREATE_BOARD = gql` mutation createBoard($writer: String, $title: String, $contents: String) { createBoard(writer: $writer, title: $title, contents: $contents) { _id number message } } `; const FETCH_BOARD = gql` query fetchBoard($number: Int) { fetchBoard(number: $number) { number writer title contents } } `; const GraphqlMutationArgsPage = () => { const [createBoard] = useMutation(CREATE_BOARD); const { data: fetchBoardData, refetch } = useQuery(FETCH_BOARD); const [number, setNumber] = useState(0); const onClickSubmit = async () => { const result = await createBoard({ variables: { // variables: $ 역할 writer: "훈이", title: "안녕하세요!", contents: "반갑습니다.", }, }); console.log(result); setNumber(result.data.createBoard.number); }; const onClickFetch = async () => { await refetch({ number }); console.log(fetchBoardData); }; return ( <div> <button onClick={onClickSubmit}>GRAPHQL-API 요청하기</button> {number} <button onClick={onClickFetch}>GRAPHQL-API 내용확인</button> </div> ); }; export default GraphqlMutationArgsPage; 이렇게 refetch를 사용하는게 맞나요?현재 작성한 게시글이 조회가 안되고 직전 게시글이 조회가 되네요.. 현재 작성한 게시글 number는 13280인데 조회된 게시글은 13279입니다.
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
Module not found: Can't resolve '@/styles/Home.module.css' 에러
https://nextjs.org/docs/messages/module-not-found wait - compiling... error - ./pages/_app.js:1:0 Module not found: Can't resolve '@/styles/globals.css' > 1 | import "@/styles/globals.css"; 2 | 3 | export default function App({ Component, pageProps }) { 4 | return <Component {...pageProps} />;안녕하세요 강사님 !섹션 23 example 리액트 세상 강의 중 yarn dev를 입력하면 위와 같은 에러가 확인됩니다. _app.js 파일에서 global.css를 불러오는 부분 @/styles/global.css 을 상대적인 주소로 가져올 수 있도록// import "@/styles/globals.css"; import "../styles/globals.css"; export default function App({ Component, pageProps }) { return <Component {...pageProps} />; }위와 같이 변경해봐도 동일한 에러가 발생합니다.global.css 파일을 삭제해봐도 에러가 발생합니다.이상태에서 index.js 파일에서 주석 처리한 부분을 지우게 되면 아래와 같은 에러가 확인됩니다.// index.js import Head from "next/head"; import Image from "next/image"; // import styles from "@/styles/Home.module.css"; 제가 다운받은 버전은 package.json 파일에서 아래와 같이 확인할 수 있습니다.{ "name": "class", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint" }, "dependencies": { "@emotion/react": "^11.11.0", "@emotion/styled": "^11.11.0", "next": "12.1.0", "react": "17.0.2", "react-dom": "17.0.2" } } 강사님 파일에서는 저와 다른 부분이 확인되는데 제가 빼먹은게 있는건지, 새로 다운받아야 하는 것이 있는 걸까요? 버전 차이인 걸까요? 이유가 뭘까요..?@emotion/client @next/font // 제 파일에는 없고 강사님 파일에서 확인되는 부분 그리고 해당 수업 중 질문이 있는데요,yarn add 기능 또는 npm install 기능 명령어로 설치 시, 각각 다른 파일에 기록이 된다고 하셨는데요강사님께서 package-lock.json 파일을 삭제 하셨는데, 혹시 파일을 삭제하신 이유가가급적 yarn.lock 파일로 통일하기 위함이 맞을까요? package-lock.json 과 yarn.lock 파일은 서로 다르게 기록이 되어있지 않은가요? 파일이 초기에 생성된 시점이라 한개의 파일을 삭제해도 무방한건지 이와 관련해 궁금합니다.
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
17버전 18버전
리액트 17버전은 섹션 4~21리액트 18버전은 섹션 23~끝까지 맞나요??17버전 수강중에 있는데 건너뛰고 18버전부터 다시 세팅하고 해야되나요?
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
antd 임포트 이후 에러입니다
import { UpCircleOutlined } from "@ant-design/icons"; import styled from '@emotion/styled' import { MouseEvent } from "react"; import { useState } from "react"; const MyIcon = styled(UpCircleOutlined)` color: red; font-size: 130px; ` export default function LibaryIconPage(): JSX.Element { const [ count, setCount] = useState(0) const onClickDelete = (event: MouseEvent<HTMLDivElement>): void => { console.log(event.currentTarget.id) setCount(count + 1) console.log(count) } return ( <div id="삭제" onClick={onClickDelete}> <MyIcon />; </div> ) } MyIcon에서 위와 같은 오류가 뜹니다!
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
section27 quiz 질문입니다.
알려주신데로 한거 같은데반응이 성공적이지 않았다 400 상태 코드를 받았다고 alert창에 뜨는데.. 어떤게 문제 인지 잘 모르겠네요 ㅠㅠ 네트워크 페이로드를 보면 다 잘 들어간거같은데...페이로드랑 코드입니다.{operationName: "createProduct",…}operationName: "createProduct"query: "mutation createProduct($seller: String, $createProductInput: CreateProductInput!) {\n createProduct(seller: $seller, createProductInput: $createProductInput) {\n id\n _typename\n }\n}"variables: {seller: "김갑수", createProductInput: {pName: "안경", contents: "멋진 안경", price: "15000"}}createProductInput: {pName: "안경", contents: "멋진 안경", price: "15000"}contents: "멋진 안경"pName: "안경"price: "15000"seller: "김갑수"import { gql, useMutation } from "@apollo/client"; import { useState } from "react"; const CREATE_PRODUCT = gql` mutation createProduct( $seller: String $createProductInput: CreateProductInput! ) { createProduct(seller: $seller, createProductInput: $createProductInput) { _id } } `; export default function Boards_05_quiz() { //js const [seller, setSeller] = useState(""); const [pName, setPname] = useState(""); const [contents, setContents] = useState(""); const [price, setPrice] = useState(""); const [createProduct] = useMutation(CREATE_PRODUCT); const onChangeSeller = (event) => { setSeller(event.target.value); }; const onChangePname = (event) => { setPname(event.target.value); }; const onChangeContents = (event) => { setContents(event.target.value); }; const onChangePrice = (event) => { setPrice(event.target.value); }; const onClickHandler = async () => { try { const result = await createProduct({ variables: { seller, createProductInput: { pName, contents, price, }, }, }); console.log(result); } catch (error) { alert(error.message); } }; return ( //html <div> <input type="text" placeholder="판매자명을 입력해주세요" onChange={onChangeSeller} ></input> <input type="text" placeholder="상품명을 입력해주세요" onChange={onChangePname} ></input> <input type="text" placeholder="삼품내용을 입력해주세요" onChange={onChangeContents} ></input> <input type="text" placeholder="상품가격을 입력해주세요" onChange={onChangePrice} ></input> <button onClick={onClickHandler}>상품등록</button> </div> ); }
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
MouseEvent 형식이 제네릭이 아닙니다.
const onClickSpan = (event: MouseEvent<HTMLSpanElement>) => { alert(event.currentTarget.id + "번 게시물입니다.") console.log(event.currentTarget.id) } const onClickDiv = (event: MouseEvent<HTMLDivElement>) => { alert(event.currentTarget.id + "번 게시물입니다.") console.log(event.currentTarget.id) } const qqq = (event: MouseEvent<HTMLSpanElement>) => { alert("클릭 타이틀") } // map의 특이점 또는 callback함수의 특이점 : 중괄호{} 로 쓰면return 생략 불가능 , () 로 쓰면 return 생략 가능 return( <> <div> {data?.fetchBoards.map((el: any) => ( // 함수타입은 인자 받는 곳에서 타입을 선언해주면됨 <div> <span> <input type='checkbox' /> </span> <span onClick = {() => ( // 안에서 바로 지정해버리는 법 alert(el.number + "번 게시물입니다. 안에서 지정 법") )} style = {mystyle}>{el.number}</span> <span id = {el.number} onClick = {onClickSpan} style = {mystyle}>{el.writer}</span> <span id = {el.number} onClick = {onClickSpan} style = {{margin: "10px"}}>{el.title}</span> <span id = {el.number} onClick = {onClickSpan} style = {{margin: "10px"}}>{el.contents}</span> </div>))} </div> <div> {data?.fetchBoards.map((el: any) => ( // 위에서 처럼 하나하나 지정 말고 한번에 지정하는 법 (이벤트 버블링으로 클릭 이벤트 전파) <div id={el.number} onClick={onClickDiv}> <span> <input type='checkbox' /> </span> <span onClick = {qqq} style = {mystyle}>{el.number}</span> <span style = {mystyle}>{el.writer}</span> <span style = {{margin: "10px"}}>{el.title}</span> <span style = {{margin: "10px"}}>{el.contents}</span> </div>))} </div>위 코드에서 span 태그에는 HTMLSpanElement Div 태그에는 HTMLDivElement 를 적용했는데 'MouseEvent 형식이 제네릭이 아닙니다.' 이 오류가 계속 뜹니다!
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
Next.js body태그 접근
강사님 안녕하세요, 제가 배운거 바탕으로 포트폴리오를 제작중인데요body 태그에 접근할려면 구글링 해본 결과 _document 파일이 있어야 하는데아무리 찾아봐도 _document가 없더라구요 혹시 body태그에 접근하는방법을여쭤봐도 될까요?※ document.querySelector 접근할 생각을 했는데 react, next.js에서는 되도록이면사용안하는게 좋다고해서 어쩔수없을때는 사용해도 될까요?
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
git 업데이트
> git push -u origin master To https://github.com/eunpse/preCamp.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/eunpse/preCamp.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.과제에 알려주신 방법으로 깃에 먼저 파일을 올렸다가, 내용을 수정하고 다시 깃에 올리려고 하는데 오류가 발생합니다. git pull을 해라 이런 말이 있는 것 같은데 어떻게 해야하나요?
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
'result' is of type 'unknown'. ts(18046)
강의 화면과 달리 result 타입이 unknown이라고 뜹니다소스를 비교했을 땐 동일한 것 같은데, 어떤 부분이 잘못 된걸까요?
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
Final signup 과제에서
let phone1 = document.getElementById('phone1').value; function ph1() { if (phone1.length === 3) { document.getElementById('phone2').focus(); } }function ph1() { let phone1 = document.getElementById('phone1').value; if (phone1.length === 3) { document.getElementById('phone2').focus(); } }안녕하세요. 섹션1 final 과제 sign up 진행 중입니다.핸드폰 번호를 입력하면 포커스를 이동 중에 첫번째 코드블럭 같이 정의한 후 포커스를 이동하려 했더니 되지 않더라고요! 혹시 위의 두 코드 블럭은 다른 코드로 정의되는 것인가요 ?저는 {} 밖에서 정의를 해 주면 전체 코드에 적용된다고 해서 한번에 phone1,phone2,phone3 을 정의하려고 했거든요!
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
final signup 과제
let phone1 = document.getElementById('phone1').value; function ph1() { if (phone1.length === 3) { document.getElementById('phone2').focus(); } } let phone1 을 상위에 정의 하면 왜 null 값으로 읽히는 걸까요 ?
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
search에 있는 refetch 질문이요.
중고마켓을 만들고 있습니다. 이부분인데 여기서 판매중상품 판매된상품 두개로 나눠서 searchbar(검색)을 만들었습니다. useSerach 파일로 밑에 코드로 따로 빼놨고 (useSearch)container이부분에서 onChangeSearch안에 있는 refetch를 어떻게 가져와야 하나요refetch: SoldOutTrueRefetch || SoldOutFalseRefetch 이렇게 처음에 가져오려고 했지만 실패했습니다.. presenter코드가 조금 지저분하지만 완성이 목표라서 현재 짜는 코드는 조금 지저분해도 이런식으로 두개를 가져오고 싶습니다. refetch 부분 어떤식으로 가져와야할지 알려주세요.
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
graphql useditem 질문입니다!
게시판 페이지 카운트는 있는데 혹시 중고아이템은 페이지카운트 쿼리가 없는건가요? ㅠㅜ찾아봐도 없는거 같아서 무한스크롤로 했는데 혹시나해서 글 남깁니다!!
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
Node 18 버전 강의
안녕하세요,회사에서, 신규 프로젝트에서 'react 18 버전'을 사용 한다고 하였는데요.node 18 버전, 타입스크립트, ant 디자인 등등 관련해서, 프로젝트 작업 시 조언, 작업 방식..등 과 관련한 내용 있으시면 혹시 공유 가능할까요..?
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
d-day 코드오류
강의보면서 그대로 작성했는데 targetDate 부분이 오류가 납니다. 여기서 안되니까 remaining 에서도 오류나고..콘솔 찍으면 NaN 만 출력이 되네요ㅠㅠ 왜그럴까요? <script> const dateFormMaker = function () { const inputYear = document.querySelector("#target-year-input").value; const inputMonth = document.querySelector("#target-month-input").value; const inputDate = document.querySelector("#target-date-input").value; const dateFormat = `${inputYear}-${inputMonth}-${inputDate}`; return dateFormat; }; const counterMaker = function () { const targetDateInput = dateFormMaker(); const nowDate = new Date(); const targetDate = new Date(targetDateInput).setHours(0,0,0,0); /* error */ const remaining = (targetDate - nowDate) / 1000; const remainingDate = Math.floor(remaining / 3600 / 24); const remainingHours = Math.floor(remaining / 3600) % 24; const remainingMin = Math.floor(remaining / 60) % 60; const remainingSec = Math.floor(remaining) % 60; console.log(remainingDate, remainingHours, remainingMin, remainingSec); console.log(targetDate); }; </script>
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
container의 이름을 class로 주는 이유
id는 하나로 유일해야하고 그렇지 않은 경우에는 class 속성으로 이름을 주어도 상관없다고 알고있는데 여러 강의들에서도 container같은 요소를 class로 이름을 주더라구요 제 생각에는 container라는 이름을 다시 사용할 것 같지 않아서 id로 줘도 상관없을 것 같은데 그럼에도 class로 이름을 주는 이유가 있는 건지 궁금합니다.
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
26강 포트폴리오 리뷰 Unhandled Runtime Error ApolloError: Response not successful: Received status code 400
웹으로 확인하니 이런 화면이 뜹니다
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
Can't resolve '@/styles/Home.module.css' 에러
안녕하세요,Section 23 부분중 localhost:3000으로 접속하는 부분에서, 첨부한 사진과 같은 컴파일 에러가 계속 발생합니다. 이전에 다른 분이 올리신 global.css 관련 질문에서 강사님이 답변하신 것처럼 index.js 파일에서 @를 ..로도 바꿔봤고, 해당 줄을 주석처리도 해봤는데 문제 해결이 안되고 다른 에러가 계속 발생합니다.어떻게 하면 좋을까요?첫번째 사진은 @/styles~로 그대로 실행했을때 나는 에러화면, 두번째 사진은 ../styles~로 고쳤을때 발생하는 에러 화면입니다.
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
초기설정 중인데 문제가 한두가지가 아닙니다..
Section 23 Notion 문서 보면서 설정하고 있는데요,next.js로 프로젝트 만들었는데 문서와는 달리 Typescript 쓸건지 등등 여러 질문이 떠서 No 하려고 해도 타이핑이 안돼서 Yes 밖에 되지 않습니다일단 되는대로 class랑 자유게시판 만들었는데 이번에는 pages 디렉토리가 설치가 안되어있습니다그러다보니 그 다음 yarn dev 부분에서도 pages 디렉토리가 없다는 에러가 나고, 임의로 mkdir 통해서 pages만들고 실행하니까 Detected next.config.js, no exported configuration found. 뜨면서 URL을 브라우저에서 열어도 404 error 메세지만 뜹니다그런 과정을 거치고 나니까 다른 부수적인 에러들도 나타나는데, ../같은 기본적인 명령어에서도 not found 같은 에러가 나는등등 있습니다시작부터 막히니까 답답하네요...
- 해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
_app.tsx 빨간줄
실행도 되고 app.tsx파일도 제대로 반영이 되는데 아래 jsx부분의 Component부분의 빨간 밑줄이 계속 남아 있습니다 ㅠㅠ