2021.09.05 / router

최권준·2021년 9월 6일
0

Error 발생한 부분들

1. Price값이 int라면 입력된 value값에 Number로 숫자 처리를 해줘야 Error가 안생긴다

price: Number(price)

2. fetch로 불러올때

variables : { boardId: router.query.이자리}
이자리에는 [ ]로 만들어준 폴더 이름이 들어가야된다

variables: {productId: router.query.read}

3. useQuery는 창이 열리자마자 실행되기때문에 따로 함수를 만들지 않는다

const router = useRouter()
const {data} = useQuery(FETCH_PRODUCT, {
variables: {productId: router.query.read}
})

4. data를 불러오기전에 UI를 먼저 만들려면 에러가 발생하기 때문에 조건부 랜더링을 이용해야 한다.

{data ? data.fetchBoard.contents: "loading.."}

5. try ~ catch를 이용할 때는 data를 router로 보내주는 부분까지 try부분에 넣어줘야 한다.

async function send() {
    try{
        const result = await createProduct({
            variables: {seller:"판매자", 
                createProductInput:{
                    name: name,
                    detail: detail,
                    price: Number(price)
                }
            }
        })
        console.log(result);
        console.log(result.data.createProduct._id);
        router.push(`/viewproduct/${result.data.createProduct._id}`)
        alert("등록완료");
    }catch(error){
        console.log("Error")
    }
}

0개의 댓글

Powered by GraphCDN, the GraphQL CDN