【发布时间】:2018-08-17 13:52:21
【问题描述】:
我有一个看起来像这样的 React Route...它根据 URL 参数的值有条件地呈现一个组件:
<Route path="/blog/:postId" render={(props) = {
const postId = props.match.params.postId; // extract post from url
return (
post
? <Post {...props} postId={postId} />
: <div>Post does not exist</div>
);
}
我希望只有经过身份验证的用户能够访问此路由,这意味着我将把它变成这样的 PrivateRoute (from the docs):
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
fakeAuth.isAuthenticated ? (
<Component {...props} />
) : (
<Redirect
to={{
pathname: "/login",
state: { from: props.location }
}}
/>
)
}
/>
);
然后我会像这样使用私人路线......
<PrivateRoute path="/blog/:postId" component={Post} />
但是如何检查 PrivateRoute 中的 URL 参数并根据 URL 参数有条件地呈现 Post 组件?
【问题讨论】:
标签: reactjs react-router react-router-v4 url-parameters react-router-dom