我的私人路线(管理员)有问题。外观如下:
const PrivateRoute = ({ component: Component, ...rest }) => {
const { user } = rest.user
return (
user.length
? (
<Route
{...rest}
render={ props => {
user[0].tier > 1
? (
<Component {...props} />
) : (
<Redirect
to={{
pathname: '/app/unauthorized',
}}
/>
)
}}
/>
) : (
<Redirect
to={{
pathname: '/app/unauthorized',
}}
/>
)
)
}
当用户登录并具有特定特权时,此路由应返回作为道具发送的组件,如下所示:
<PrivateRoute path={`${url}/`} component={ AdminDashboard } />
但是我收到一个错误,认为渲染函数没有返回任何内容。我想念一些东西吗?
答案 0 :(得分:2)
您不返回渲染函数中的组件:
<Route
{...rest}
render={ props => {
/// THERES NO RETURN STATEMENT ...
user[0].tier > 1
? (
<Component {...props} />
) : (
<Redirect
to={{
pathname: '/app/unauthorized',
}}
/>
)
}}
/>
答案 1 :(得分:1)
我认为您忘记在Route中遵循波纹管代码返回渲染方法
const PrivateRoute = ({ component: Component, ...rest }) => {
const { user } = rest.user
return (
user.length
? (
<Route
{...rest}
render={ props =>
user[0].tier > 1
? (
<Component {...props} />
) : (
<Redirect
to={{
pathname: '/app/unauthorized',
}}
/>
)
}
/>
) : (
<Redirect
to={{
pathname: '/app/unauthorized',
}}
/>
)
)
}