액션 생성자 내에서 Redux 상태에 액세스
질문:
Redux 애플리케이션에서 어떻게 액션 생성자 내에서 글로벌 스토어 상태에 접근할 수 있나요? 다음 접근 방식이 적절합니까?
접근 방법 1:
<code class="javascript">import store from '../store'; export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return { type: SOME_ACTION, items: store.getState().otherReducer.items, } }</code>
접근 방법 2:
<code class="javascript">export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return (dispatch, getState) => { const {items} = getState().otherReducer; dispatch(anotherAction(items)); } }</code>
답변:
액션 생성자의 상태 액세스 허용 여부는 Redux 커뮤니티 내에서 논쟁의 주제입니다.
접근 방법 1:
store.getState()를 통해 직접 상태에 액세스하는 것은 저장소가 전역 싱글톤이라는 점에 의존하기 때문에 권장되지 않습니다. 요청별로 별도의 저장소가 존재할 수 있는 서버에서는 이 접근 방식이 문제가 됩니다.
접근 방식 2:
이 접근 방식은 Redux Thunk 미들웨어를 사용하므로 선호됩니다. getState()를 통해 비동기 작업과 매장 상태 검색이 가능합니다. Thunk는 클라이언트와 서버 모두에서 원활하게 작동하며 상태 액세스가 특정 작업으로 격리되도록 합니다.
고려 사항:
궁극적으로 두 접근 방식 모두 원하는 결과를 얻을 수 있지만 접근 방식 2는 잠재적인 위험을 피하고 환경 전반에서 일관성을 유지하기 위해 권장되는 모범 사례입니다.
위 내용은 Redux Action Creator가 상태에 어떻게 액세스해야 합니까: From Store 또는 Thunk?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!