我希望仅在我的JSON文件中存在产品时才将请求重定向到/work/:product
。目前我有以下内容:
<Route path="/work/:product"render={props => (check_that_product_exiists) ? <Life sayHello = { this.sayHello } />:<Redirect to="/" />} />
产品名称当前位于具有此架构的JSON文件中:
[
{
"name":"adcall",
...
},
...
]
如何检查占位符产品是否位于嵌套JSON文件的其中一个元素中?我正在使用react-router v4(与以前的版本略有不同)。
答案 0 :(得分:0)
我个人不会在路由器级别但在组件级别这样做。因此,允许用户通过:
<Route
path="/work/:product"
render={Life}
/>
然后在Life
组件中,您可以
...
componentWillMount() {
if (isProductExisting === false)
window.location = '/';
}
...
我在componentWillMount
中执行此操作的原因是因为我想避免在我重定向的情况下安装组件。在此组件中,您可以从导入的JSON文件和路径中获取产品名称(在这种情况下,请确保使用withRouter
方法将路由道具传递给此组件)。