강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

hm_stom님의 프로필 이미지
hm_stom

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

게시글 제거 / 닉네임 변경

안녕하세요 질문 있습니다 !

작성

·

127

0


//닉네임 변경
const onSubmit = useCallback(() => {
dispatch({
type: CHANGE_NICKNAME_REQUEST
, data: nickname
});

message.success("닉네임이 변경되었습니다.");
}, [nickname]);
이런식으로 닉네임을 변경 후 변경되었다는 알림창을 띄워주고 싶은데
useEffect()로 changeNicknameDone값의 상태 값에 따라 띄워주려 했는데
중복으로 띄워지더라구요 위 코드와 같이 해결해도 될까요 ?
아니면 다른 방법이 있을까요 ?
backend단에는 이렇게 구현했습니다.
result값으로 업데이트가 되지 않았으면 오류 발생을 하도록 만들었습니다

//닉네임 변경
router.patch("/nickname", isLoggedIn, async (req, res, next) => {
try {

const result = await User.update({
nickname: req.body.nickname
}, {
where: {
id: req.user.id
}
});

//닉네임 변경
if (result === 1) {
res.status(200).send({ nickname: req.body.nickname });
} else {
res.status(500).send("닉네임 변경 오류");
}

} catch (error) {
console.error(error);
next(error);
}
});

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

useEffect로 띄우는 게 맞습니다. useCallback 안에 넣으신 것은 성공하든 실패하든 무조건 변경되었다는 메시지가 뜨므로 의미가 없습니다.

hm_stom님의 프로필 이미지
hm_stom

작성한 질문수

질문하기