2016-07-29 1 views
0

에 나는 API에 내 응용 프로그램을 연결하고있어이 내가 일이 원하는 것은 구문 분석하고 나는 API에서받을 수있는 데이터를 변환하고 전송하는 구문 분석 데이터는 행동

export function getDayRoutes(date){ 
const request = api().get(`/rest/routes/${date}`); 
let routes = null; 

//code here to transform the data 
request.then((response)=>{ 
    routes = response.data; 
}); 

return { 
    type: GET_DAYROUTES, 
    payload: routes 
} 
} 

입니다

같은 작업이 보인다 그 원시 데이터를 가지고 대신 감속기에.

여기에 조치가있는 구성 요소에서 수행하는 대신이 방법이 있습니까? 또는 변형 기능을 감속기로 옮겨야합니까?

+1

나는 당신이 묻는 것을 실제로 얻지 못합니다. 'response.data'가 리턴되었습니다. 당신은 거기서 어떤 변환을 할 수 있고'payload' 결과를 줄 수 있습니다. – xiaofan2406

답변

1

예 가능합니다. thunk middleware for redux을 사용해야합니다. 응답을 받으면 필요에 따라 피트를 수정 한 다음 감속기로 보냅니다. 벨로우 (Bellow)는 예입니다.

export function getDayRoutes(date){ 
    return (dispatch) => { 
     fetch('/rest/routes/' + date).then((response)=>{ 
      routes = response.data; 
      dispatch({ 
       type: GET_DAYROUTES, 
       payload: parseResponse(response); 
      }); 
     }); 
    } 
} 

const parseResponse = (response) => { 
    //return desired modified response 
} 
0

당신이 말하는 것은 asynchronous actions입니다.

테스트 아니에요
export function getDayRoutes(date){ 
    const request = api().get(`/rest/routes/${date}`); 
    let routes = null; 

    //code here to transform the data 
    return request.then((response)=>{ 
    routes = response.data; 
    return { 
     type: GET_DAYROUTES, 
     payload: routes 
    }; 
    }); 
} 

, 여러분은 여러분의 필요에 정확히 적용하는 방법 REDUX의 문서에서 볼 수 있습니다 : 귀하의 예제에서

는 다음과 같이 보일 수 있습니다.