Я пытаюсь перенаправить пользователя без прав администратора на домашнюю страницу, но меня всегда перенаправляют для любых пользователей.
my Routing. js:
class Routing extends Component {
constructor(props) {
super(props);
}
render() {
return (
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/cart" component={Cart} />
<Route exact path="/contact" component={Contact} />
<AdminRoute exact user={this.props.user} path="/admin/product" component={ListProduct}/>
<AdminRoute exact user={this.props.user} path="/admin/product/add" component={AddProduct}/>
<AdminRoute exact user={this.props.user} path="/admin/product/:id/edit" component={EditProduct}/>
</Switch>
)
}
}
const mapStateToProps = state => ({
user: state.auth.user
});
export default connect(
mapStateToProps,
null
)(Routing);
мой AdminRoute. js:
const AdminRoute = ({ component: Component, user, ...rest }) => (
<Route
{...rest}
render={props => (
(user && isAdmin(user)
? <Component {...props} />
: <Redirect to="/" />
)}
/>
);
export default AdminRoute;
мои утилиты:
export function isAdmin(user) {
return user.roles.includes('ROLE_ADMIN');
}
Кажется, я перенаправлен немедленно, потому что мой пользовательский реквизит не загружен в это время. Как я могу решить эту проблему.