• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

안녕하세요 강사님. 리덕스에 관한 질문이 있어 이렇게 글을 올립니다.

21.02.25 20:08 작성 조회수 119

0

제가 이 강의에서 구현했던 쇼핑몰 카트에 add하는 기능의 redux action 부분을 redux saga로 전환해보고자 연습하고 있는데 좀 확실치 않고 헷갈리는 게 있어 이렇게 질문을 올리게 되었습니다.

그냥 action에서는 response에서 받아온 data을 이용하여 quantity에 대한 값을 처리해주었는데

saga에서는 어디서 response 데이터를 받아 어디서 quantity에 대한 값을 처리해야 할지 고민이네요.

saga 쪽에서는 받은 response 데이터을 가지고 있는 것이 result 변수에 담고 있는 것은 알겠는데 이 변수 result을 이용해서

처리 후 다시 새로운 변수를 선언하여 payload에 넣어야 할지... 아니면 Axios 쪽에서 then을 통해 처리해야할지... 최선의 방법이

궁금합니다.

이 강의에서 saga을 다루지 않지만 혹시 saga에 대해 알고계시면 알려주시면 정말 감사하겠습니다.

//action
export function getCartItems(cartItemsuserCart){


                                                           
    const request = Axios.get(`/api/product/products_by_id?id=${cartItems}&type=array`)
    .then(response =>{
        
            .
            userCart.forEach(cartItem => {
                response.data.forEach((productDetailindex=> {
                    if(cartItem.id === productDetail._id) {
                        response.data[index].quantity = cartItem.quantity
                    }
                })
            })
            return response.data;
    });
    
    return {
        type: GET_CART_ITEMS,
        payload: request
    }
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
//Saga
const getCartItemsAPI = (Data=> {
  
    return axios.get("api/~......"Data);
//.then(response => ~
  };
  
  function* getCartItems(action) {
    try {
      const result = yield call(getCartItemsAPIaction.payload);
// result.data ~
      console.log(result);
      yield put({
        type: GET_CART_ITEMS,
        payload: result.data,
      });
    } catch (e) {
      yield put({
        type: GET_CART_ITEMS_FAIL,
        payload: e.response,
      });
    }
  }
  
  function* watchgetCartItems() {
    yield takeEvery(GET_CART_ITEMS_REQUESTgetCartItems);
 }

답변 1

답변을 작성해보세요.

0

안녕하세요  k0502s님

죄송하지만 제가 Saga에 대해 아는 부분이 적어서 이 부분에서는 도움이 못 될 것 같습니다 ㅠㅠ

혹시나 Saga의 경험 많으신 분이 이 글을 보시고 조언을 해주실 수 있었으면 좋겠습니다!

 

k0502s님의 프로필

k0502s

질문자

2021.02.27

그렇군요 ㅎ

궁금한게 실무에서도 저렇게 강의에 나와있는 것처럼 redux-promise로도 작업을 하시는 편인가요?