예약 시스템의 스텁이 있다고 가정 해 봅니다.부작용이있는 React/Redux 데이터로드
예약을 만들 때 고객을 검색하고 예약중인 고객을 선택할 수 있습니다. 고객을 선택하면 관련 고객 연락처가 부작용으로로드됩니다. 사용자는 예약을 위해 이러한 연락처 중 하나를 선택해야합니다. 난 단지 고객 ID를하고 customerContactId을 저장, 저장시
{
customer: {id: 1, name: "Dandy Inc"}
customerContacts: [{id:1, name: "John Doe"},{id:2, name: "John Doe"}]
customerContactId: 2
}
:
의 내 상태 모양 척하자이 같은 것입니다.
이제이 예약을 나중에 편집하고 싶다고 가정 해 봅시다.
는 나도
1) 내가 필요로하는 부작용을 유발하기 위해 내가 가지고있는 데이터, 기본적으로 "재생"작업을 가져 오기 (예를 들어, 고객을 설정하고 고객을로드의 부작용을 일으킬 수 연락처) 또는
2) 가져온 데이터를 가져 와서 필요한 추가 데이터를 수동으로로드 한 다음 한 번에 전체 응용 프로그램 상태를 설정하십시오.
앞으로 나아갈 수있는 최선의 경로에 대한 의견은 무엇입니까? 이것은 단순한 예입니다. 실제 시나리오에 최소한 2 ~ 4 가지 추가 부작용이 발생한다고 가정 해 봅시다.
populateCustomerBooking = (customerId, customerContactId) =>
loadContacts(customerId)
if (customerContactId)
setContactWithSideEffects(customerContactId)
runOtherCustomerSideEffects(customerId)
// And so on...
// This is called when a contact is chosen or we're loading.
setContactWithSideEffects = (customerContactId) =>
dispatch(SET_CUSTOMER_CONTACT)
runContactSideEffects()
좀 더이 방식으로 첫 번째 옵션을 맞는 것 같아요 : 당신이 customerContactId
여부 (매우 많은 의사가)이 있다면 처리하기 위해 create/loadCustomerBooking
기능을 일반화한다처럼
Redux 스토어에는 이미 필요한 모든 것이 있어야하거나 질문에 누락 된 부분이 있습니다. –