회원가입 페이지 모달관련 질문
392
작성한 질문수 5
회원가입 페이지를 구현하면서 실패시 SignupError를 모달에 props로 전달하려고합니다.
근데 다음과 같이 모달에서 바인딩 요소 'string'은 암시적으로 'any' 유형을 가진다고 에러가 발생하는데
해당 이유에 대해서 궁금해 질문드립니다.
참고자료 함께 첨부하겠습니다.
pages/signup
const [signupError, setSignupError] = useState('');
axios
.post('/api/users', {
email,
nickname,
password,
})
.then(response => {
console.log(response);
setSignupSuccess(true);
})
.catch(error => {
console.log(error.response);
setSignupError(error.response.data);
});
console.log(email, nickname, password);
}
{signupError && <Error error={signupError} />}
components/modal
import React from 'react';
const Modal = ({ error: string }) => {
return (
<ModalWrapper>
<header>Error!</header>
<div>{error}</div>
<ModalBtn>확인</ModalBtn>
</ModalWrapper>
);
};
export default Modal;
에러 로그

답변 1
0
타이핑이 틀렸습니다.
({ error }: { error: string }) 입니다
0
답변 감사합니다.
제로초님이 답변해주시기전에 구글링을 통해 interface로 다음과 같이 문제를 해결했는데
말씀해주신 방법과 아래 방법 중 어떤 방법을 좀 더 권장하시는지 궁금합니다.
import React from 'react';
interface propsType {
error: string;
}
const Modal = (error: propsType) => {
return (
<>
<header>Error!</header>
<div>{error}</div>
</>
);
};
export default Modal;
0
늦은 시간에 답변 감사합니다.
마지막으로 state의 props전달과정에서 궁금한 점이 있습니다.
첫질문에서 언급했듯 저는 회원가입페이지에서 오류가 발생하면 해당 오류를 props로 모달 컴포넌트에 전달하고 있습니다.
근데 Objects are not valid as a React child 에러가 발생해서 콘솔을 찍어보니 회원가입페이지는 string타입, props를 전달받은 모달에서은 JSON 타입더라고요.
에러는 해결했지만 어떤 이유로 다른 데이터 타입이 전달되는지, 제가 해결한 방법보다 더 나은 방법이 있는지 궁금해서 질문드립니다.
참고자료 함께 첨부하겠습니다.
1 회원가입 페이지 (에러를 props를 통해 모달로 전달)
const [signupError, setSignupError] = useState('');
axios
.post('/api/users', {
email,
nickname,
password,
})
.then(response => {
console.log(response);
setSignupSuccess(true);
})
.catch(error => {
console.log(error.response);
setSignupError(error.response.data);
});
console.log(email, nickname, password);
}
console.log(`signupError 에러는 이것 ${signupError}`);
{signupError && <ErrorModal error={signupError} />}
2 모달 (전달받은 props의 형태가 이상해보입니다.)
interface propsType {
error: string;
}
const ErrorModal = (error: propsType) => {
console.log(`모달의 에러는 error는 이것 ${error}`);
console.log(`모달의 에러는 error는 이것 ${JSON.stringify(error)}`);
return (
<>
// <div>{error}</div> 다음과 같이 작성했더니 오류
<div>{error.error}</div> // 이렇게 작성해서 오류를 해결
</>
);
};
export default ErrorModal;
3 콘솔결과
.png)
기본 셋팅과 관련하여
0
93
1
초기 셋팅 back과 front만 남겨두고 다 지운 후 진행 방법
0
98
2
focus 시에만 화면 업데이트 되는 이유 + 해결방법
0
150
2
useEffect 개수 관리
0
111
2
라이브러리 서치 방법
0
105
2
함수 정의 패턴
0
77
1
npm run dev 에러
0
152
3
npx webpack 후 에러
0
178
2
'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345)
0
146
2
사용자 가입시 에러발생 (TypeError: Cannot read properties of null (reading 'addMembers')
1
179
2
초기세팅중 packge.json 에러떠요
0
157
2
CORS - Access-Control-Allow-Origin 누락 문제
0
431
3
로그인 페이지 무한 새로고침 현상
0
598
2
Module not found: Error: Can't resolve './App' 에러
0
959
1
배포 방법
0
299
2
npm run dev 시 빌드가 매우 느려졌습니다
0
993
2
alias 경로 설정 오류
0
453
2
fetcher 함수의 data 값이 두번 찍히는 이유
0
278
1
제네릭 질문
0
219
2
ts-node 대신 tsx 사용여부
0
373
1
배포 관련 질문
0
247
1
[nginx + https] 서비스를 실행하면 niginx가 아닌 서비스 화면을 보여주게 하고 싶습니다.
0
386
2
[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.
0
336
1
users 호출 시 쿠키가 담기지 않는 이슈 질문드립니다.
0
247
2





