history.replace () не работает в классе auth0 и реагирует на маршрутизатор v4 - PullRequest
0 голосов
/ 21 апреля 2019

history.replace () не работает в классе auth0

//src/history.js

import { createBrowserHistory } from 'history';

export default createBrowserHistory();

Затем я пытаюсь импортировать это в мой класс Auth0 для использования history.replace ().Это две функции из класса, и как я пытаюсь использовать эту функцию.

//components/Auth.js

handleAuthentication() {
        this.auth0.parseHash((err, authResult) => {
            if (authResult && authResult.accessToken && authResult.idToken) {
                this.setSession(authResult);
            } else if (err) {
                console.log(err);
                alert(`Error: ${err.error}. Check the console for further details.`);

                location.hash = "";
                //location.pathname = "/";
                history.replace("/");
            }
        });
    }

    setSession(authResult) {
        // Set isLoggedIn flag in localStorage
        //localStorage.setItem('isLoggedIn', 'true');

        // Set the time that the access token will expire at
        let expiresAt = JSON.stringify((authResult.expiresIn * 1000) + new Date().getTime());

        localStorage.setItem("access_token", authResult.accessToken);
        localStorage.setItem("id_token", authResult.idToken);
        localStorage.setItem("expires_at", expiresAt);

        location.hash = "";
        //location.pathname = "/dashboard";
        history.replace("/dashboard");

    }

Я также добавляю историю в качестве реквизита для моего маршрутизатора здесь.

<Router history={history}>
            <Switch>
                <Route exact path="/" render={(props) => <Home auth={this.props.auth} {...props} />}/>
                <Route path="/dashboard" render={(props) => <Dashboard auth={this.props.auth} {...props} />}/>
                <Route path="/callback" render={(props) => <Callback auth={this.props.auth} {...props} />}/>
            </Switch>
</Router>

Я прочитал, чтобы обернуть компонент с помощью withRouter (), но, похоже, это работает только для компонентов, и в этом случае я пытаюсь просто использовать класс.

1 Ответ

0 голосов
/ 23 апреля 2019

Вы видите какие-либо ошибки в консоли при ее запуске?Похоже, это не имеет прямого отношения к Auth0, а больше касается аспекта реквизита, когда он вызывается.Спасибо!

...