是否可以验证react-router <route>组件的url参数?

时间:2016-06-21 18:18:38

标签: reactjs react-router

我正在使用react-router(2.4.1),我有一个通配符(path =“*”)后备路由来显示“Not Found”组件。

我的一条路线定义如下:

<Route path="/campaigns/:category" component={CampaignsPage} />

我是否可以以任何方式验证category路线参数,以检查我的类别列表中是否存在此类别?如果没有,我希望路由器下降到通配符以显示Not Found组件

1 个答案:

答案 0 :(得分:0)

也许您可以在“广告系列”组件中验证收到的参数?有点像:

class CampaignsPage extends Component {
    render() {
        const validCampaignCats = [...]
        const receivedCampaignCat = this.props.params.category

        const renderChild = (actualCat, validCats) => {
            if (!validCats.includes(actualCat)) {
                return <YourErrorPage/>
            }
            return this.props.children
        }

        return (
            <div>
                <Header/>
                { renderChild(receivedCampaignCat, validCampaignCats) }
                <Footer/>
            </div>
        )
    }
}

希望有所帮助!