首页 > 解决方案 > React Router Switch Redux 调度

问题描述

我有下面的 switch 语句,它根据用户所在的链接将用户路由到正确的组件。

const Router = (props) => {
    switch(props.page) {
        case 'Equities' :
            this.props.pageName('Equities'); 
            this.props.pageURL('/Equities'); 
            return <Equities />;
        case 'Daily' : 
            return <Daily />;
        default :
            return ( <Redirect to="/Equities" /> )
    }
  }

const content = ({ match }) => {

    return (
        <div className="content">
            <Router page={match.params.type} />
        </div>
    );
}

const mapDispatchToProps = {
    pageURL,
    pageName
   };

export default connect(mapDispatchToProps)(content);

在上面的第 4 行,我正在尝试向 Redux 发送一个操作,以更新用户所在的 redux 存储中的页面名称和 URL。我收到以下错误: 在此处输入图像描述

如何根据用户所在的页面调度操作,以便将名称和 URL 更新到用户正在访问的任何页面?

标签: react-reduxreact-router

解决方案


因此,对于遇到此问题的任何人,这似乎是由于我在将 redux 添加到页面时使用 compose 模块崩溃导致的错误。

我的应用程序组件结构是这样的:App -> Skeleton -> TopBar, Sidebar, Content

因此,在 Content 组件内部,我有一个为用户显示正确内容的开关。我试图将此功能添加到内容。现在我添加到 Skeleton,它工作得很好并且更好,因为我现在不需要在 switch 中添加 8 个不同的语句,说如果匹配这个就这样做。现在我所拥有的就是this.props.pageName(match.url); this.props.pageURL(match.params.type);我在 redux 中记录用户所在的位置,仅此而已。


推荐阅读