首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录后,将页面从8月更改为主页

登录后,将页面从8月更改为主页
EN

Stack Overflow用户
提问于 2018-03-28 01:30:16
回答 1查看 1.8K关注 0票数 1

我有一个web应用程序,在成功登录后,页面应该从Auth.js重定向到Home.js,但它所做的只是在成功登录后更改URL,而不是重定向到我想要的页面:

代码语言:javascript
复制
// app.js 
import React, {Component} from 'react';
import './App.css';
import Authen from './Pages/Authen';
import Home from './Pages/Home';
import {
    BrowserRouter as Router,
    Route,
    Link
} from 'react-router-dom';

class App extends Component {

    render() {
        return (
            <div className="App">

                <Router>
                    <div>
                        <ul>
                        </ul>
                        <Route exact path="/" component={Authen}/>
                        <Route path="Home" component={Home}/>
                    </div>
                </Router>

            </div>

        );
    }
}

export default App;
代码语言:javascript
复制
// Auth.js
import React, {Component} from 'react';
import {withRouter} from 'react-router-dom'

var firebase = require('firebase');

class Authen extends React.Component {
    Login = () => {
        //login method
        const email = this.refs.email.value;
        const password = this.refs.password.value;
        console.log(email, password);

        const auth = firebase.auth();

        const promise = auth.signInWithEmailAndPassword(email, password);

        promise.catch(e => {
            var err = e.message;
            console.log(err);
            this.setState({err: err});
        });
        //gets user uid
        firebase.auth().onAuthStateChanged((user) => {
            if (user) {
                console.log(user.uid);
                this.props.history.push('/Home')
            }
        });
    }

    constructor(props) {
        super(props);

        this.state = {
            err: ''
        };
        this.Login = this.Login.bind(this);
    }

    render() {
        return (
            <div className="login_div">
                <div className="main-div">
                    <h3>N.N.NASSAR</h3>
                    <input ref="email" type="email" placeholder="Email..." id="email_field"/>
                    <input ref="password" type="password" placeholder="Password..." id="password_field"/>
                    <p>{this.state.err}</p>
                    <button onClick={() => this.Login()}> Login</button>
                </div>
            </div>
        );
    }
}

export default withRouter(Authen);
代码语言:javascript
复制
//Home.js
import React, {Component} from 'react';

class Home extends Component {
    render() {
        return (
            <div>
                <h1>saaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad</h1>
            </div>
        );
    }
}

export default Home;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-28 02:02:27

您的auth is代码正在重定向到/Home

代码语言:javascript
复制
    firebase.auth().onAuthStateChanged((user) => {
        if (user) {
            console.log(user.uid);
            this.props.history.push('/Home')
        }
    });

app.js中,修复到HomeRoute路径。发自:

代码语言:javascript
复制
 <Route path="Home" component={Home}/>

至:

代码语言:javascript
复制
 <Route path="/Home" component={Home}/>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49524725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档