1

저는 Redux에서 아마추어입니다. 일부 데이터가있는 서버에 요청을 게시하고 싶습니다. 일부 데이터가 내 저장소에 있습니다 .. "redux- promise-middleware "를 사용합니다. 내 행동은 다음과 같습니다 :가장 좋은 방법은 일부 데이터를 서버에 게시하는 것입니다.

나는 세 가지 방법이 있습니다. 첫 번째 방법은 내 작업에서 가져 오기 저장소 및 호출 getState 메서드이고 두 번째 방법은 감속기에서 작업을 파견하는 것이며 마지막 방법은 내 작업의 모든 데이터를 인수로 전달하는 것입니다. 어느 것이 맞습니까? 난 안티 패턴

감사에 대한이 질문에 enter link description here 및 메신저 걱정을 읽는 당신은 import { connect } from 'react-redux'을 사용하고 containers을 사용하는 것이 좋습니다 미리

+0

코드에서 setTimeout을 사용할 때의 이점에 대해 확신 할 수 없습니다. – GibboK

답변

1

입니다.

기능 mapStateToProps에서 상점에 액세스하면 컨테이너에서 조치에 대한 모든 데이터를 보냅니다.

그것의 서명은 일부가 액션에 전달 될 수있는 state 얻을 수있다

const mapStateToProps = (state, ownProps) => {} 

입니다.

액션은 상태에서 전달한 데이터가있는 ajax를 사용하여 API에 게시를 수행합니다.

귀하의 취향대로 isomorphic-fetch을 고려해보십시오.

빠른 예 :

import 'isomorphic-fetch' 

const postData =()=> ({ 
    type: types.POST_YOURACTION, 
    payload: new Promise((resolve, reject) => { 
    fetch(api.postData(), {method: 'POST', }).then(response => { 
     resolve(response.json()) 
    }) 
    }) 
}) 

직접 당신이 상태가 바로 안티 패턴을 간주 될 수 있지만 정말 아키텍처 설계에 따라 접근, .getState()를 사용할 수있는 저장소에 액세스해야하는 경우 경우. mapStateToProps을 살펴 보겠습니다.

상점에 액세스하는 방법의 예.

import store from 'app/store' 
store.getState().yourReducer.data 
+0

답장을 보내 주셔서 감사합니다.하지만 제 질문은 어떻게이 작업에 상점에 액세스 할 수 있습니까? –

+0

@hosseinderakhshan은 상점을로드하고 store.getState();를 사용합니다. – GibboK

+0

은 행동 패턴이 안티 패턴인가요? 이 링크를 읽으십시오 : http : //stackoverflow.com/questions/35667249/accessing-redux-state-in-action-creator –

0

나는 항상 세 번째 방법을 사용하여 데이터를 작업에 전달합니다. 데이터는 store.getState() 또는 params 또는 서버에서 데이터를 가져 오는 데 필요한 모든 데이터가 될 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 당신과 동의합니다. –