나는 직장에서 일하고 있으며 적절한 행동을 파견하는 방법에 대해 궁금해하는 커다란 프로젝트가있다.Redux 모범 사례에서 작업 파견?
내 구성 요소의 컨테이너에이 함수를 매핑합니다.
const mapDispatchToProps = (dispatch) => {
return {
ackMessage:(convo)=> {
chatSocketService.messageAcknowledge(convo, dispatch);
}
}
내 서비스로 발송 기능을 전달하고 있습니다.
소켓 이벤트가 실패 할 경우 서비스 내부에서 오류 조치를 전달할 수 있도록 디스패치를 전달해야합니다.
괜찮습니까? 또는 항상 컨테이너에 파견을 유지하는 것이 더 낫습니다. 그 소켓 서비스 기능을 약속으로 바꾸면 컨테이너에서 디스패치 기능에 너무 많은 로직을 추가 할 수 있습니다.
디스패치 객체를 확인 주위로 전달하고 있습니까?
편집 : 여기에 내 소켓 서비스 스 니펫이 있습니다. 내가 오류를 파견 할 필요가 방출 내 소켓에서 오류 이벤트에 : 나는 당신이 용기 내부의 파견 기능을 유지해야한다고 생각
export const CONVO_ERROR = 'CHAT_CONVO_ERROR';
export const convoError = (convoID, error) => ({
type:CONVO_ERROR,
convoID,
error
});
export const SOCKET_DISCONNECTED = 'CHAT_SOCKET_DISCONNECTED';
export const socketDisconnected = (disconnected)=> ({
type:SOCKET_DISCONNECTED,
disconnected
});
답장을 보내 주셔서 감사합니다. 내 소켓 서비스 중 일부를 포함하도록 게시물을 편집했습니다. –
내 작업에서 비동기 호출을 수행하지 않습니다. 내 emit 이벤트에 오류가있는 경우 서버에서 콜백을 기다리는 중 오류가 발생했습니다. –
그래서 코드가 커질수록 나중에 디버깅하기가 어려울 것 이외에 다른 방법으로 문제가 있다고 생각하지 않습니다. 그래서 당신은 인자로 전달을 피하기 위해 redux-saga 또는 redux thunk를 사용합니다. – slopeofhope