inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

graphql query가 안돼요

해결된 질문

543

웹서퍼

작성한 질문수 6

0

 

import {Bigframe,
    ResultWrapper,
    UserBox,
    UserInfo,
    Boundary
} from "@/styles/emotion";
import { gql,useQuery } from "@apollo/client"
import { useRouter } from "next/router"
import{useState} from 'react'

const FETCH_PRODUCT = gql`
    query fetchBoard($boardId: ID!){
        fetchBoard(boardId:$boardId){
            writer
            title
            contents
            createdAt
        }
    }
`

export default function BulletinBoardFetch() {
    
        const router = useRouter()
        const[writer,setWriter]=useState("")
        const[creatDt,setCreatDt]=useState("")

        console.log(router.query.qqq)
    
        const{data}=useQuery(FETCH_PRODUCT,{
            variables:{
                boardId: `${router.query.qqq}`
            }
        })
    
        console.log(data)
        setCreatDt(data.fetchBoard.createdAt)
        setWriter(data.fetchBoard.writer)
    
    
    return(
        <div>
            <Bigframe>
                <div>
                    banner1
                </div>
                <div>
                    banner2
                </div>
                <ResultWrapper>
                    <UserBox>
                        <img src="../../../public/userpic.png" alt=""/>
                        <UserInfo>
                            <Writer>{writer}</Writer>
                            <CreateDate>{createDt}</CreateDate>
                        </UserInfo>
                        <img src="../../../public/clip.png" alt=""/>
                        <img src="../../../public/location.png" alt=""/>
                        <Boundary></Boundary>
                    </UserBox>
                </ResultWrapper>
            </Bigframe>
        </div>
    )
}

뭐가 문제인걸까요...ㅠㅠ

react node.js seo graphql next.js

답변 1

0

코드캠프 프론트엔드 멘토

안녕하세요!

우리가 화면을 렌더링 할 때 data는 아직 안들어와 있을 수 있습니다.
따라서 data가 있다면 다시 렌더링 할 수 있도록 옵셔널 체이닝( ' ? ')을 붙여 주었습니다.
에러에서도 data 부분이 문제임을 알려주고 있죠?
따라서 data?.fetchBoard?.[속성] 이런식으로 작성해주시고 답글 남겨주세요!

감사합니다.😁

0

웹서퍼

 

import {Bigframe,
    ResultWrapper,
    UserBox,
    UserInfo,
    Boundary
} from "@/styles/emotion";
import { gql,useQuery } from "@apollo/client"
import { useRouter } from "next/router"
import{useState} from 'react'

const FETCH_PRODUCT = gql`
    query fetchBoard($boardId: ID!){
        fetchBoard(boardId:$boardId){
            writer
            title
            contents
            createdAt
        }
    }
`

export default function BulletinBoardFetch() {
    
        const router = useRouter()
        const[writer,setWriter]=useState("")
        const[creatDt,setCreatDt]=useState("")

        console.log(router.query.qqq)
    
        const{data}=useQuery(FETCH_PRODUCT,{
            variables:{
                boardId: `${router.query.qqq}`
            }
        })
        setCreatDt(data?.fetchBoard?.createdAt)
        setWriter(data?.fetchBoard?.writer)

이렇게 고쳤는데 콘솔에 데이터가 뜨지 않네요

0

코드캠프 프론트엔드 멘토

return 부분에 <Writer>{data?.fetchBoard?.writer}</Writer> 이렇게 바꿔주세요

fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다

0

41

1

댓글 기능 구현 중 질문드립니다.

0

68

1

쿠폰코드 발급

0

147

2

example 서버 플레이그라운드, API 접속 모두 안됩니다.

0

89

2

문의드립니다!! ㅠㅠ

0

107

2

graphql 백엔드 서버가 포폴용 빼곤 접속이 안됩니다.

0

80

2

_app.js 작성 이후로 에러가 발생하네요

0

96

2

학습자료

0

72

2

학습자료가 안열립니다.

0

51

2

플레이 그라운드 퀴즈 문제 질문이 있습니다.

0

61

0

기존강의 구매자, 업데이트 끝인가요?

0

111

3

업데이트 버전 수강

0

89

2

완벽한 프론트엔드

0

136

2

나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.

0

84

1

graphql 접속이 안됩니다.

0

101

2

const, let 사용 질문 드립니다.

0

72

2

싸이월드 만들기 1탄 피드백 부탁드립니다.

0

123

2

회원가입 과제 피드백 부탁드립니다.

0

81

2

styled.span / styled.input "CSS 자동완성"

0

47

1

쿠폰 발급 관련

0

167

2

서버 502 error

0

247

2

쿠폰 다시 부탁드려도 될가여?

0

140

2

a태그 패딩했을때 왜 크기가 줄어들지 않고 늘어나나요

0

185

2

2분 44초 질문

0

132

3