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

grs0412님의 프로필 이미지
grs0412

작성한 질문수

Redux vs MobX (둘 다 배우자!)

4-3. mobx-react와 hooks

observable의 함수를 익명함수로 바꿔봤습니다.

해결된 질문

작성

·

302

·

수정됨

0

 

const userStore = observable({
  isLogginIn: false,
  data: null as any,
  logIn(data: any) {
    this.isLogginIn = true;
    setTimeout(() => {
      this.data = data;
      this.isLogginIn = false;
      postStore.data.push(1);
    }, 2000);
  },
  logOut() {
    this.data = null;
  },
});

 

const userStore = observable({
  isLogginIn: false,
  data: null as any,
  logIn: (data: any) => {
    userStore.isLogginIn = true;
    setTimeout(() => {
      userStore.data = data;
      userStore.isLogginIn = false;
      postStore.data.push(1);
    }, 2000);
  },
  logOut: () => {
    userStore.data = null;
  },
});

평소에 선언적함수보다 익명함수로 코딩을 하고 있어서 코딩스타일을 맞추고 싶어

위 코드를 밑에처럼 익명함수로 바꿔봤습니다.

익명함수에 화살표함수를 쓰니 this가 바인딩되어
undefind가 된것 같은데 그래서 this 대신 userStore에서 접근하는 방식으로 바꿔봤습니다.

this대신에 useStore로 접근해도 괜찮은지 잘 모르겟습니다.

 

답변 1

0

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

해보진 않았는데 문제없어보이긴 합니다

grs0412님의 프로필 이미지
grs0412
질문자

개인적인 궁금증입니다만
this라는게 불러오는 주체에 따라 바뀌어서 bind를 하고 항상 this가 뭔지 생각을 하게되는데

그럼에도 this를 썻을때 이점이 있을까요? 선언된 상수가 아니라 this가 더 많이 쓰이는 이유가 궁금합니다.

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

클래스의 경우를 생각해보시면 될 것 같습니다. 클래스의 경우에는 this를 쓰지 않으면 가리킬 수가 없습니다.

객체의 경우가 조금 특별한 상황이고요

grs0412님의 프로필 이미지
grs0412

작성한 질문수

질문하기