이것은 redux에서의 첫 번째 응용 프로그램입니다. 전에 모든 페이지 패턴에 대해 하나의 감속기를 따라 갔지만 앱이 복잡해지면서 하위 감속기로 나누는 것이 필요하다는 것을 알게되었습니다. 그래서 숙제를 끝냈고 redux에 명시된 예제를 살펴 보았습니다. 현재 상황이 내게 selectors
을 사용할 수 있다고 생각하지만 근본적인 상황에 대해 내 감속기를 구성하는 것이 가장 좋은 방법인지는 확실하지 않습니다.감속기 구성에 대한 모범 사례
또한 내가 따르는 구성표는 페이지 당 하나의 스마트 구성 요소이며 다른 구성 요소는 전달 된 모든 내용을 방금 내보내는 SFC입니다. 페이지 상단 부분에 등록 양식이 있으며 비동기 작업이 있습니다. 맨 아래 부분은 배열과 백엔드 호출을 표시합니다.
const initialState = {
isFetching: false,
isCreating: false,
isDeleting: false, // Delete object from the bottom part
formStatus: '', // Displays status of the top part of backend call
blockStatus: '', // Status for the bottom part. GroupsList
statusType: '',
groupsList: [] // Fetch list for the bottom part
};
또한, 나는이 groupsList에서 백엔드에 게시하는 필터링 된 목록의 정렬을 유지해야 할 것입니다 :
그래서,이 페이지에 대한 나의 초기 상태입니다. 여기 셀렉터를 사용하는 것이 좋을까요?
또한, 거기에 내가 아래에있는 목록의 각 개체에서 페이지 하단 부분에서 시작하는 다른 전화 그리고 그것은 내가 groupsList
에서 각 개체에 추가 할 추가 목록을 가져옵니다. 기본 상태를 유지하고 상태를 정상화하는 것이 좋음을 염두에두면 내 감속기를 무너 뜨리는 것이 좋습니다.
편집 : 정보가 누락되었다고 생각됩니다. 앱의이 부분은 두 부분으로 나뉩니다. 따라서 나는 GroupsPage
이라는 저장소에 연결된이 구성 요소를 가지고 있습니다. GroupsPage
에는 GroupsForm
과 GroupsBlock
의 두 가지 구성 요소가 있습니다.
GroupsForm
는 사용자가 새로운 그룹을 생성하고 성공적인 창조에이GroupsBlock
에서 그룹 목록의 배열 에 추가 될 수 있도록 텍스트 필드의 무리가 있습니다.GroupsBlock
에는Table
구성 요소가 있으며 페이지로드시 API에서 가져온 그룹 목록을 표시합니다. 그룹 블록의 각 행에는 두 개의 아이콘이 있습니다. 하나는 그룹 정보를 편집하고 다른 하나는 그룹을 삭제하는 것입니다.
지우기 및 그 외 모든 것은 간단합니다. 복잡성은 편집 버튼이 트리거되는 경우입니다. 수정 버튼을 클릭하면 모달을 통해 내 그룹 목록으로 끌어다 놓을 수있는 몇 가지 사용 가능한 그룹 속성을 가져 오는 API 호출이 있으며 업데이트 된 그룹 목록을 백엔드에 추가로 게시합니다.
그래서 내 감속기 조성물은 (세부 사항) 다음과 같습니다const initialState = {
isCreating: false,
isUpdatingContainersGroup: false,
isFetchingGroups: false,
isFetchingGroupHosts: false,
isDeleting: false,
didCreate: false,
didDelete: false,
didUpdateContainersGroup: false,
didFetchGroups: false,
didFetchGroupHosts: false
formStatus: '',
blockStatus: '',
statusType: ''
groupsList: [properties: [{}...{}]],
availableProperties: [{}.. {}],
newProperties: [{}... {}] // Have to maintain an array for new properties added. To post updated data
};
을 그래서, 개인적으로 나는이 모든 꽤 엉망이라고 생각하고 나뿐만 아니라 감속기 아마 선택기를 하위의 일종이 필요하고 필요 일관성을 유지하기 위해 앱 전체에 구현해야합니다.
중요 나는 앱 전체에서 같은 패턴을 따르고 있습니다. 모든 페이지에는 양식과 블록이 있습니다. 그리고 모든 페이지마다 하나의 연결된 구성 요소와 그 안에있는 다른 모든 구성 요소가 SFC에 불과합니다.
알겠습니다. – Umair
굉장! 감사. – nshoes
수정을 확인하십시오. – Umair