11.17航海66日目TIL
Eメールチェック
東雨は会員の入会部分を担当しており、有効性検査に合格できない場合は、次のような警告メッセージが送られます.
メールが重複している場合も下記の警告メッセージを表示しますが、デザイナーと話しているときはサーバー上の情報が下に表示されにくいので、横で聞いているときに「まずは下から始めましょう」と言って、私の領域ではないので話せず、見たところ統一性がないので、自分で簡単にやってみました.
<form
onSubmit={handleSubmit(async (emailInfo) => {
console.log(emailInfo);
await dispatch(sendEmailAuth(emailInfo));
})}
>
<StyledInput
type="text"
// placeholder="이메일을 입력해주세요"
{...register('email', {
required: '이메일을 입력해주세요',
pattern: {
value:
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/,
message: '이메일 양식에 맞지 않습니다',
},
})}
/>
{errors.email && (
<ErrorMessage>{errors.email.message}</ErrorMessage>
)}
// 서버와 통신 시 받는 에러메시지
const [errorMessage, setErrorMessage] = React.useState('')
// 통신해서 받는 데이터를 바로 state에 넣어주었다.
<form
onSubmit={handleSubmit(async (emailInfo) => {
const { data } = await axios.post(`${baseURL}/email/send`, emailInfo);
if (data.result === 'success') {
await dispatch(emailAuth(emailInfo))
}
setErrorMessage(data.errorMessage)
})}
>
// 기존에 있던 유효성 검사
<StyledInput
type="text"
// placeholder="이메일을 입력해주세요"
{...register('email', {
required: '이메일을 입력해주세요',
pattern: {
value:
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/,
message: '이메일 양식에 맞지 않습니다',
},
})}
/>
// 상황 별 에러메시지 출력
{errors.email ? <ErrorMessage>{errors.email.message}</ErrorMessage>
: errorMessage && <ErrorMessage>{errorMessage}</ErrorMessage> }
私の分野ではないので、一度だけ話しましたが、これがアラトになったら...心が痛くなりそうです.
Reference
この問題について(11.17航海66日目TIL), 我々は、より多くの情報をここで見つけました https://velog.io/@wswj9608/11.17-항해-66일차-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol