Вы должны пройти маршрутизатор к Redux санк действия создателя (вы пайса кода не является действием, но как я уже писал действий создателя). Например, это может выглядеть так:
export function loginSuccess(router, response){
return (dispatch, getState) => {
dispatch({ response, type: types.LOGIN });
router.transitionTo("/profile")
};
}
У вас есть доступ к вашему маршрутизатору на месте, где вы вызываете этого создателя действия? он доступен там? если да, то у вас там что-то вроде этого (я не знаю, что это response
):
this.props.dispatch(loginSuccess(response));
и вы должны изменить его на:
this.props.dispatch(loginSuccess(this.context.router, response));
Я предполагаю, что у вас есть доступ к маршрутизатору по контексту.
Поскольку вы не показываете, как вы вызываете это действие, я только предполагаю. Надеюсь, что моя инструкция поможет вам.
И еще одно. Новый ответ-маршрутизатор api не имеет метода перехода в маршрутизатор! Я не знаю, используете ли вы новый или старый api. Но если вы получаете сообщение об ошибке, как:
Вызов transitionTo
терпит неудачу с: 'location.search.substring не является функцией'
затем изменить также:
router.transitionTo("/profile")
к:
router.push("/profile")
'router' должен быть передан на' this.props'. –
Это в моем действии .. как я могу передать его в этом.props .. – aryan
Ах, не читал достаточно внимательно. Используете ли вы 'redux-router'? –