javascript - react-router-redux 无法推送新 URL

标签 javascript reactjs react-router react-redux react-router-redux

我试图在发生错误时在 redux 操作中重定向。我已尝试设置 react-router-redux,但出现以下错误。

Uncaught TypeError: Cannot read property 'push' of undefined
    at middleware.js:29
    at index.js:14
    at index.js:100
    at dispatch (applyMiddleware.js:45)
    at reports-actions.js:88
    at index.js:11
    at Object.dispatch (index.js:100)
    at ReportTemplate.componentWillMount (ReportTemplate.js:54)
    at ReactCompositeComponent.js:348
    at measureLifeCyclePerf (ReactCompositeComponent.js:75)

这就是路由器和 redux 的设置方式。

const reducers = combineReducers({
    customer: transactionTrackerCustomerReducer,
    hierarchy: transactionTrackerHierarchyReducer,
    item: transactionTrackerItemReducer,
    tender: transactionTrackerTenderReducer,
    transaction: transactionTrackerTransactionReducer,
    transactionTracker: transactionTrackerReducer,
    session: userSessionReducer,
    reports: reportsReducer
});
const middleware = applyMiddleware(createLogger(), thunk, routerMiddleware(hashHistory));
const store = createStore(reducers, compose(middleware));
ReactDOM.render(
    <Provider store={store}>
        <Router history={hashHistory}>
            <MuiThemeProvider muiTheme={getBrandTheme()}>
                <Switch>
                    <Route path="/login" component={Login}/>
                    <Route path="/" render={props => (<App/>)}/>
                </Switch>
            </MuiThemeProvider>
        </Router>
    </Provider>
    , document.getElementById('root')
);

我正在尝试这样使用它

export function fetchStoreHierarchy() {

    return function (dispatch) {

        // other code ....
        dispatch(push('/login'));
     }
}

最佳答案

来自 react-router-redux版本 4,您必须导入 routerActions,如下所示:

import { routerActions } from 'react-router-redux'

称它为push功能,如:

return function (dispatch) {
    // other code ....
    dispatch(routerActions.push('/login'));
}

关于javascript - react-router-redux 无法推送新 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44167518/

相关文章:

javascript - 想要在 highcharts/highstock 中用鼠标滚轮移动 y 轴滚动条

javascript - 使用 Fabric.js 在矩形中以规则间隔绘制垂直线

reactjs - 我如何在 React 中解决 "_this is undefined"?

react-router - React Router 的 <Link> 组件中的状态是什么?

javascript - React-router v2.0 browserHistory 不工作

javascript - React Router 1.0 - 替换 # 并去掉 ?_k

javascript - 在Grails中使用Ajax尝试加载数据

javascript - 在从 URL 表单提交的图像周围动态添加一个 div

javascript - 在 useEffect 钩子(Hook)中添加依赖导致死循环

javascript - ReactJS - ReactiveSearch - 建议选择的自定义事件