강의

멘토링

로드맵

Inflearn Community Q&A

nan84203857's profile image
nan84203857

asked

[Renewal] Creating NodeBird SNS with React

Implementing membership registration

질문있습니다

Written on

·

138

0

질문1. signup.js에서

const [termsetTerm] = useState('');
const onChangeTerm = useCallback((e=> {
    setTerm(e.target.checked);
    setTermError(false);
 }, []);
 <Checkbox name="user-term" checked={term} onChange={onChangeTerm}>제로초 말을 잘 들을 것을 동의합니다.</Checkbox>

체크박스를 누르면 onChangeterm이 실행되면서  term이 true로 바뀌잖아요? 그런데 최초값을

const [term, setTerm] = useState('');

 불린으로 주지않고 이렇게 문자열로 주었는데  어떻게 true로 나올 수 있는지 궁금합니다

질문2. 회원가입 실행과정이 제가 이해한것이 맞는지 여쭈고 싶습니다.

먼저 회원가입 버튼을 누르면

 dispatch({
      type: SIGN_UP_REQUEST,
      data: { emailpasswordnickname },
   });

 signup.js에서 dispatch가 실행되면서 reducer 폴더의 user.js의

 case SIGN_UP_REQUEST:
      draft.signUpLoading = true;
      draft.signUpError = null;
      draft.signUpDone = false;
      break;

위의 reducer 코드가 실행되고 그다음은 saga폴더의 user.js에서

function* watchSignUp() {
  yield takeLatest(SIGN_UP_REQUESTsignUp);
}

가 실행된다음 function* signUp(action) {

  try {
    const result = yield call(signUpAPIaction.data);
    console.log(result);
    yield put({
      type: SIGN_UP_SUCCESS,
    });
  } catch (err) {
    console.error(err);
    yield put({
      type: SIGN_UP_FAILURE,
      error: err.response.data,
    });
  }
}
function signUpAPI(data) {
  return axios.post('/user'data);
}

서버 요청으로 인해 백앤드의 route폴더의 user.js에서 디비에 값을 저장한후 갖고 온 값을 result에 담은후 sign_UP_SUCCESS 로 인해  

reducer폴더의 user.js의 

case SIGN_UP_SUCCESS:
      draft.signUpLoading = false;
      draft.signUpDone = true;
      break;

가 실행되어 리덕스의 이 값들이 저장되는 것이 맞나요??

제가 이해한 흐름과 순서가 맞는지 궁금합니다!

질문3. 

 const { melogOutLoading } = useSelector((state=> state.user);

이렇게 state.user을 불러오는건 passport 폴더의 index.js의

passport.deserializeUser(async (iddone=> {
    try {
      const user = await User.findOne({ where: { id }});
      done(nulluser); // req.user
    } catch (error) {
      console.error(error);
      done(error);
    }
 });

이것으로 인해 가능한것인가요? 

아니면 reudecer폴더의 user.js에 있는 것을 불러오는 것인가요? state.user은 어떤 uesr인가요?

reactreduxnodejsexpressNext.js

Answer 1

0

zerocho님의 프로필 이미지
zerocho
Instructor

1. 초깃값은 false입니다. ''는 false값을 가집니다.

2. 맞습니다.

3. reducer의 user입니다~

nan84203857's profile image
nan84203857

asked

Ask a question