ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • action
    Redux 2022. 7. 27. 19:52

    저번에 store와 reducer의 의미를 배웠는데, store는 data를 저장하는 공간, reducer은 data를 수정하는 공간이다. 

    여기서 data를 수정하려면 action을 통해서 가능하다. action은 reducer의 두번째 파라미터이고,

    countStore.dispatch({type: "ADD"})

    이런 식으로, store에 dispatch()를 붙여서 오브젝트형식을 action에 보낼 수 있다. type: "ADD" 를 먼저 보내보자.

    이러면 reducer안에서 action은 type: "ADD"가 된다.

    const countModifier = (count = 0, action) => {
        if (action.type === "ADD") {
            console.log('hello')
        }
        return count;
    }
    
    const countStore = createStore(countModifier);
    
    countStore.dispatch({type: "ADD"})

    그래서 위처럼, action.type가 ADD일 때, 콘솔을 찍어보면 잘 나오게 된다.

     

    즉, dispatch로 한번 보낼 때, countModifier이 한번 작동하게 된다. 그리고 return 값은 항상 data가 된다.

    const countModifier = (count = 0, action) => {
        if (action.type === "ADD") {
            return count + 1;
        } else if (action.type === "MINUS") {
            return count - 1;
        } else {
            return count;
        }
    }

    이렇게 count 에 +1 -1을 하게 해주고,

    countStore.dispatch({type: "ADD"});
    countStore.dispatch({type: "ADD"});
    countStore.dispatch({type: "ADD"});
    countStore.dispatch({type: "ADD"});
    countStore.dispatch({type: "MINUS"});

    5번 dispatch를 해주면 countStore.getState()의 값은 4가 나오게 된다.

    'Redux' 카테고리의 다른 글

    mapStateToProps와 mapDispatchToProps  (0) 2022.07.28
    리덕스만으로 todo 만들기  (0) 2022.07.27
    개선사항  (0) 2022.07.27
    subscribe  (0) 2022.07.27
    store 와 reducer  (0) 2022.07.27

    댓글

Designed by Tistory.