inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

상품(product) 수정시 const 사용이 안되는 이유

해결된 질문

185

촉촉한 갈매기

작성한 질문수 4

0

안녕하세요

멋진 강의 잘 듣고 있습니다.

 

Todo에서 ReadComponent.js 안에서 read 할때 const makeDiv = () => () 와 같이 Arrow Function을 사용해서 간단하게 표현해주셨는데요,

 

수정할때도 간단하게 사용해보고 싶어서

Product의 ModifyComponent.js 에서 아래와 같이 만들어 사용해봤습니다.

{makeDiv("name", product.pname, "text", handleChangeProduct)}
{makeDiv("description", product.pdesc, "text", handleChangeProduct)}
{makeDiv("price", product.price, "number", handleChangeProduct)}
const makeDiv = (title, value, type, handleChangeProduct) => (
  <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-300 shadow-md"
        name={title}
        type={type}
        value={value}
        onChange={handleChangeProduct}
      ></input>
    </div>
  </div>
);

만들어보니까,

price(넘버)는 수정이 되는데,

pname과 pdesc는 수정이 안되더라구요, readOnly가 먹혀있었습니다.

text와 number가 다른걸까요...

수정이 안되는 이유가 뭔지 궁금합니다ㅠ

 

추가로, const makeDiv 는 return 아래에 추가를 해주셨는데,

return 위에가 아니라 return 아래에 추가한 이유도 궁금합니다.

 

확인 부탁드립니다.

감사합니다.

 

 

 

react spring-boot jpa jwt redux-toolkit

답변 1

0

구멍가게코딩단

{makeDiv("name", product.pname, "text", handleChangeProduct)}

{makeDiv("description", product.pdesc, "text", handleChangeProduct)}

{makeDiv("price", product.price, "number", handleChangeProduct)}

 

이 동작하지 못하는 이유는 첫번째 파라미터가 input 태그의 name 속성값으로 사용되고 handleChangeProduct에서는 name 속성값을 이용해서 product객체를 수정하기 때문에 이름이 일치해야만 합니다.

 

예를 들어

{makeDiv("pname", product.pname, "text", handleChangeProduct)}

{makeDiv("pdesc", product.pdesc, "text", handleChangeProduct)}

와 같이 사용하셔야만 합니다.

 

--

별도로 분리되는 함수라 위치는 중요하지 않았습니다. 좀 더 깔끔하게 별도의 파일로 뺄 수도 있었겠지만 재사용성이 떨어져서 컴포넌트 내에 있는게 낫겠다고 생각했습니다.

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

0

74

2

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

0

74

2

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

0

57

2

TodoDTO test 함수

0

80

3

강사님 오타 있음요

0

78

2

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

0

95

4

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

0

70

3

17강 문의드립니다.

0

44

1

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

0

193

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

292

2

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

0

78

2

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

0

42

2

교안 31 오타 수정해주세요

0

64

2

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

0

80

1