현재 시나리오가 있습니다. 깊게 중첩된 하위 구성 요소(디스플레이 구성 요소)는 작업(예: 경로 점프)을 트리거해야 하며 관련 작업 생성자 또는 디스패처 메서드를 계층별로 전달하지 않으려는 것입니다. 그래서 저는 이것을 하고 싶습니다:
redux store 인스턴스를 전역 객체, 즉 global.store = store로 설정하면 store.dispatch()를 언제 어디서나 사용할 수 있습니다.
react-redux의 mapDispatcherToProps 메소드가 더 이상 사용되지 않는다는 의미입니다.
이 작업을 수행하는 데 문제나 함정이 있나요?
이것은 분명히 redux 디자인의 원래 의도에 어긋납니다. 모든 구성 요소는 전역 저장소를 통해 상태를 수정할 수 있습니다. 루트 구성 요소에 액션 트리거를 배치하는 것이 좋습니다. 루트 구성 요소는 이벤트를 통해 알림을 받은 다음 구성 요소가 액션을 트리거합니다. 둘째, 구성 요소 중첩 수준을 초과하는 것은 일반적으로 권장되지 않습니다. 3단계. 상위-하위 구성 요소의 형태를 사용해야 하는지 여부와 형제 구성 요소로 부품을 교체할 수 있는지 여부를 고려할 수 있습니다.
이 접근 방식은 논리적으로 작동하지만 주요 함정은 서버 측 렌더링에 있습니다.
서버 측 렌더링을 수행하는 경우 서버에는 렌더링을 위한 자체 저장소가 필요합니다