inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

06-01-container-presenter 에러

해결된 질문

246

윰이

작성한 질문수 5

0

강의를 잘 따라가면서 작성하고 있었는데 화면을 최종적으로 확인할 때 이런 에러가 뜹니다. 코드를 두번확인했는데 틀린 부분이 보이지않습니다 ..!

index.js 코드 입니다

import BoardWrite from '../../../src/components/units/board/write/BoardWrite.container'

export default function GraphqlMutationPage(){
   
    return (
        <>
            <div>###### 여기는 페이지 입니다 ######</div>
            {/* //로직을 가져옴 */}
            <BoardWrite />
            <div>###### 여기는 페이지 입니다 ######</div>
        </>
    )


}

BoardWrite.container.js 코드 입니다

import { useMutation } from '@apollo/client'
import {useState} from 'react'
//UI를 가져옴(파일을 합침)
import BoardWriterUI from './BoardWrite.presenter'
//gql 가져옴(파일을 합침)
import {나의그래프큐엘셋팅} from './BoardWrite.queries'


//로직만 사용
export default function BoardWrite() {
    const [writer, setWriter] = useState()
    const [title, setTitle] = useState()
    const [contents, setContents] = useState()

    const [나의함수] = useMutation(나의그래프큐엘셋팅);


    const onClickSubmit = async () => {
        const result = await 나의함수({
            variables: { 
                writer: writer,
                title: title,
                contents: contents
            }
        })
        console.log(result)
    }; 

    const onChangeWriter = (event) => {
        setWriter(event.target.value)  // => state에 저장
    }

    const onChangeTitle = (event) => {
        setTitle(event.target.value)
    }

    const onChangeContents = (event) => {
        setContents(event.target.value)
    }


    return(
        <>
            <div>$$$$$$$ 여기는 컨테이너 입니다 $$$$$$</div>
            {/* UI를 가져옴(파일을 합침) */}
            <BoardWriterUI
                aaa={onClickSubmit} 
                bbb={onChangeWriter} 
                ccc={onChangeTitle} 
                ddd={onChangeContents}
            />
            <div>$$$$$$$ 여기는 컨테이너 입니다 $$$$$$</div>
        </>
    )
}

 

BoardWrite.presenter.js 코드 입니다

import {BlueButton, RedInput } from './BoardWrite.style'

//UI만 사용
export default function BoardWriterUI(props){

    return(
        <>
            <div>@@@@@@@@ 여기는 프리젠터 입니다 @@@@@@@</div>
            <div>
                작성자: <RedInput type="text" onChange={props.bbb} />
                제목: <input type="text" onChange={props.ccc} />
                내용: <input type="text" onChange={props.ddd} /> 
                <BlueButton onClick={props.aaa}>GRAPHQL-API 요청하기</BlueButton>
            </div>
            <div>@@@@@@@@ 여기는 프리젠터 입니다 @@@@@@@</div>
        </>
    )
}

BoardWrite.queries.js 코드 입니다

import { gql } from '@apollo/client'

export const 나의그래프큐엘셋팅 = gql`
    mutation createBoard($writer: String, $title: String, $contents: String){

        createBoard(writer : $writer , title: $title , contents: $contents) {
            _id
            number
            message
        }
    }

 

BoardWrite.style.js 코드 입니다

import styled from '@emotion/styled'

export const RedInput = styled.input`
    border-color: red;
`

export const BlueButton = styled.button`
    background-color: blue;
`

 

app.js 코드 입니다

// 모든 페이지의 공통설정들 여기서 진행
import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client'


export default function App({ Component, pageProps }) {

  const client = new ApolloClient({
    uri:"http://backend-example.codebootcamp.co.kr/graphql",
    cache: new InMemoryCache() //컴퓨터의 메모리에다가 백엔드에서 받아온 데이터 임시로 저장해 놓기 => 나중에 더 자세히 알아보기
  })

  return (
    <div>
      <div> ========== 여기는 _app.js 컴포넌트 시작부분 입니다. ==========</div>
      {/* //그래프큐엘 셋팅 => 앞으로 아래 컴포넌트에서 client를 쓸 수 있다는 의미 */}
      <ApolloProvider client={client}>
        <Component /> 
        {/* 내가 들어간 페이지들의 html이 여기로 다 들어오게 됨 */}
      </ApolloProvider>
      <div> ========== 여기는 _app.js 컴포넌트 마지막부분 입니다. ==========</div>
    </div>
  )
}

 

마지막으로 폴더 구조입니다

 

 

react node.js seo graphql next.js

답변 1

0

노원두

안녕하세요! 윰이님!

06-01-contatiner-presetner => 06-01-container-presenter 로 변경하여 접속해 보세요!^^

fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다

0

40

1

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

0

66

1

쿠폰코드 발급

0

136

2

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

0

87

2

문의드립니다!! ㅠㅠ

0

102

2

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

0

78

2

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

0

95

2

학습자료

0

71

2

학습자료가 안열립니다.

0

50

2

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

0

61

0

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

0

110

3

업데이트 버전 수강

0

89

2

완벽한 프론트엔드

0

136

2

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

0

84

1

graphql 접속이 안됩니다.

0

101

2

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

0

70

2

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

0

122

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