Reactjs / Redux - перенаправление маршрутов администратора - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь перенаправить пользователя без прав администратора на домашнюю страницу, но меня всегда перенаправляют для любых пользователей.

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');
}

Кажется, я перенаправлен немедленно, потому что мой пользовательский реквизит не загружен в это время. Как я могу решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...