[7日間-2]復習課題
課題の再記
作成者、コンテンツなどのボタンを入力する場合は、次の画面に値を適用します.アドレスは投稿IDでなければなりません.
作成者、タイトル、タイトル、IDアドレスを反映します.
*cssは授業の初日にやったので、熟練していません.後で修正します.
このように出てくる
1ページ目に必要な機能
->async/await、try/catchを使用します.
import {useMutatiom, gql} from '@apollo/client'
import {useState} from 'react'
import {useRouter} from 'next/router'
export default function(){
return(
<>
//컨텐츠는 길어서 생략.
</>
)
}
gqlデータを確認します.記入が必要なので、変異を調べる必要があります.
gqlコンテンツ割り当て.
const DRAGONBALL = gql`
mutation ZZZ ($writer:String, $password: String, $title: String!, $contents:String! ){
createBoard(
createBoardInput:
{
writer:$writer
password:$password
title:$title
contents:$contents
})
{
_id
writer
title
contents
}}
`
const [kakarot, UseKakarot] = useState(
writer:""
password:""
title:""
content:""
)
const buruma = useMutation(DRAGONBALL)
ルータ宣言はconst router = useRouter()
onChangeInput関数を宣言して、概念を理解するためにスプレッドシートを無効にします.
function onChangeInput(event){
const begita = {
writer: kakarot.writer,
password:kakarot.password,
title: kakarot.title,
contents: kakarot.content
},[event.target.name]:event.target.value
}
//이부분 미흡하므로 여러번 작성해보자.
表計算ドキュメントを使用する場合function onChangeInput(event){
const begita = {...kakarot,
[event.target.name]:event.target.value}
setKakarot(begita)
//입력한 값을 state사용한 setKakarot 적용.
クリックすると通信機能を使用し、async/await(通信完了待ち)とtry/catch(成功したかどうかを確認)を使用します.
async function onClickPost(){
try{
const result = await buruma({
variables:{
writer: kakarot.writer,
password:kakarot.password,
title: kakarot.title,
contents: kakarot.content
}
})
alert("성공")//이건 없어도됨
console.log(kakarot.id)
//안에 뭐가 들어가있는지 확인. 경로 확인을 위함.
router.push(`/board/${result.data.createBoard._id}`)
//반드시 먼저 경로 확인해보기.
}catch(error){
alert(error.message)
}
}
//이부분 미흡하므로 여러번 작성해보자.
1ページ目はここまでReference
この問題について([7日間-2]復習課題), 我々は、より多くの情報をここで見つけました https://velog.io/@smellycat0503/7일차-2-과제-복습テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol