2016-06-14 12 views
0

반응 라우터 경로의 onChange 이벤트에 콜백으로 redux 동작을 사용하고 싶습니다. 나는 또한 react-router-redux를 사용하고있다. fetchCompanies 액션입니다반응 라우터 경로 구성 요소의 콜백으로 작용

<Route path="profile/search" component={ProfileSearch} onChange={store.dispatch(fetchCompanies())} /> 

같은

뭔가.

더 일반적으로, 나는 경로 변경을 듣고 궁극적으로 국가와 상호 작용하기를 원합니다. 그래서 나는 행동을 사용하는 것이 나에게 가장 직접적인 선택 인 것처럼 보입니다. 그러나이 오류 메시지가 표시됩니다.

Uncaught TypeError: hook.apply is not a function TransitionUtils.js?f913:22 

다른 방법이 있습니까? 본질적으로 나쁜 루트 변경에 콜백으로 액션을 전달하려고합니까? 그렇지 않다면 어떻게 작동시킬 수 있습니까?

+0

왜 라우터 수준에서하고 싶습니까? – Hareesh

+0

단지'Route' 컴포넌트와'onChange'를 사용하여 API 요청을 콜백으로 트리거합니다 (특정 라우트가 변경 될 때마다). API 요청은 전역 상태로 저장해야하는 일부 데이터를 반환합니다. – feychou

+0

구성 요소에서도 그렇게 할 수 있습니다. 예 : 반응 구성 요소의 componentDidMount() 수명주기에 해당 작업을 전달합니다. – Hareesh

답변

0

store.dispatch을 호출하면 오류가 발생하지만 함수에서 전달 된 작업을 래핑하면 작동합니다.

const onChangeProfileSearch =() => store.dispatch(fetchCompanies()); 
<Route path="profile/search" component={ProfileSearch} onChange={onChangeProfileSearch} /> 

그러나 더 나은 접근 방법이있을 수 있습니다.

관련 문제