inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코드로 배우는 React 19 with 스프링부트 API서버

등록 모달 처리

모달이 뜨질않습니다....

460

ultimates

작성한 질문수 34

0

모달이 작동하지않아서 혹시 몰라서 카페에 올라와있는 소스코드를 덮어씌어도 모달이 뜨질않습니다.. 분명 데이터는 등록되는데 result값도 제대로 들어오는데도 불구하고 뜨질않더라구요.. 아래코드는 카페에 올라와있는 코드를 제 프로젝트에 인식시켜본 코드입니다.

 

import React, {useState} from 'react';
import ResultModal from "../common/ResultModal";
import {postAdd} from "../../api/todoApi";
import userCustomMove from "../../hooks/userCustomMove";


const initState = {
    title:'',
    content: '',
    dueDate: ''
}

const AddComponent = () => {

    const [todo, setTodo] = useState({...initState})

    const [result, setResult] = useState(null) //결과 상태

    const {moveToList} = userCustomMove() //useCustomMove 활용

    const handleChangeTodo = (e) => {

        todo[e.target.name] = e.target.value

        setTodo({...todo})
    }




    const handleClickAdd = () => {

        //console.log(todo)
        postAdd(todo)
            .then(result => {
                console.log(result)

                setResult(result.TNO) //결과 데이터 변경
                setTodo({...initState})

            }).catch(e => {
            console.error(e)
        })
    }

    const closeModal = () => {

        setResult(null)
        moveToList()  //moveToList( )호출

    }
    return (
        <div className = "border-2 border-sky-200 mt-10 m-2 p-4">

            {/* 모달 처리 */}

            {result ? <ResultModal title={'Add Result'} content={`New ${result} Added`} callbackFn={closeModal}/>: <></>}


            <div className="flex justify-center">
                <div className="relative mb-4 flex w-full flex-wrap items-stretch">
                    <div className="w-1/5 p-6 text-right font-bold">TITLE</div>
                    <input className="w-4/5 p-6 rounded-r border border-solid border-neutral-500 shadow-md"
                           name="title"
                           type={'text'}
                           value={todo.title}
                           onChange={handleChangeTodo}
                    >
                    </input>

                </div>
            </div>
            <div className="flex justify-center">
                <div className="relative mb-4 flex w-full flex-wrap items-stretch">
                    <div className="w-1/5 p-6 text-right font-bold">CONTENT</div>
                    <input className="w-4/5 p-6 rounded-r border border-solid border-neutral-500 shadow-md"
                           name="content"
                           type={'text'}
                           value={todo.content}
                           onChange={handleChangeTodo}
                    >
                    </input>
                </div>
            </div>
            <div className="flex justify-center">
                <div className="relative mb-4 flex w-full flex-wrap items-stretch">
                    <div className="w-1/5 p-6 text-right font-bold">DUEDATE</div>
                    <input className="w-4/5 p-6 rounded-r border border-solid border-neutral-500 shadow-md"
                           name="dueDate"
                           type={'date'}
                           value={todo.dueDate}
                           onChange={handleChangeTodo}
                    >
                    </input>
                </div>
            </div>
            <div className="flex justify-end">
                <div className="relative mb-4 flex p-4 flex-wrap items-stretch">
                    <button type="button"
                            className="rounded p-4 w-36 bg-blue-500 text-xl  text-white "
                            onClick={handleClickAdd}
                    >
                        ADD
                    </button>
                </div>
            </div>
        </div>
    );
}

export default AddComponent;

 

react spring-boot jpa jwt redux-toolkit

답변 1

0

구멍가게코딩단

모달이 보이는데 가장 중요한 부분이 비동기로 가져온 결과입니다.

 

postAdd(todo)
.then(result => {
   console.log(result)

   setResult(result.TNO) //결과 데이터 변경 

부분에서 console.log(result)의 결과가 출력될때 어떻게 되는지 알 수 있을까요?

 

혹시 TNO의 대 소문자가 틀릴수도 있으니까요..

 

아... 그리고 질문하신 내용의 코드를 공유하거나 메일로 주시거나 기타 등등의 방법을 좀 고민해 주시면 좋겠습니다. 에러를 잡고 싶은데 돌려볼 수가 없어서 답답하네요 ㅠㅠ

0

ultimates

죄송합니다;; 서버쪽코드 실수였습니다;;;

이런식으로 넣어놨더라구요;;;;;

return Map.of("TNO: ", tno);

동일하게 실습하는데 이상하게 페이지를 찾지 못하네요..

0

74

2

22. REST 방식 컨트롤러 만들기(2), 29. 등록처리 부분 질문이 있습니다.

0

74

2

37강. 강의수업듣다 질문드립니다.

0

57

2

TodoDTO test 함수

0

80

3

강사님 오타 있음요

0

77

2

No 1. 교제(ppt) soruce 복붙 문제 의 건

0

95

4

No 1. 교제(ppt) soruce 복붙 문제 의 건

0

70

3

17강 문의드립니다.

0

44

1

카카오 연동설정이 이제 안되는거 같아요

0

190

2

8장 마지막 강의 시 오류

0

98

4

혹시 뭐가 문제인지 알 수 있나요?

0

87

2

챕터: React-Router 설정

0

58

2

백)TODO관련

0

56

2

마리아 db 설치중 포트를 이미 사용중이라고 합니다

0

112

2

이강의 듣고 소화시켰다면 몇년차 정도 개발자라고 할수 있을까요?

0

105

1

CSR , SSR 의 수요 궁금증 질문

0

83

2

섹션5부터...

0

73

1

간단한 코드 질문!!

0

61

2

tbl_todo 질문입니다

0

65

2

수업 외 질문인데 'tbl'이 무슨 의미인가요???

0

291

2

엔티티클래스에서 질문입니다

0

78

2

수정시 writer값이 삭제되는 오류

0

42

2

교안 31 오타 수정해주세요

0

64

2

쿠키에 accessToken, refreshToken을 담고, 조회 시에 undefined

0

80

1