Javascript 登录后,我想将我的页面重定向到app.js

Javascript 登录后,我想将我的页面重定向到app.js,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我已经进入了登录页面,在我登录之后,我想重定向到App.js,但我不知道怎么做 我在app.js中尝试过,但不起作用。它会显示登录页面 Login.js代码 import React, { Component, useReducer } from 'react'; import firebase from '../services/fire'; import { Button } from 'reactstrap'; class Login extends Component { co

我已经进入了登录页面,在我登录之后,我想重定向到App.js,但我不知道怎么做

我在app.js中尝试过,但不起作用。它会显示登录页面

Login.js代码

import React, { Component, useReducer } from 'react';
import firebase from '../services/fire';
import { Button } from 'reactstrap';

class Login extends Component {
    constructor() {
        super();
        this.state = {
            isLogin: false,
            name: ""
        }
    }
    onSubmit = () => {
        var provider = new firebase.auth.GoogleAuthProvider();
        firebase.auth().signInWithPopup(provider).then(function (result) {
            // This gives you a Google Access Token. You can use it to access the Google API.
            var token = result.credential.accessToken;
            // The signed-in user info.
            var user = result.user;
            // ...
        })
            .catch(function (error) {
                console.log(error);
            });
    }
    componentDidMount = () => {
        firebase.auth().onAuthStateChanged(function (user) {
            if (user) {
                console.log("User signed in ");
                console.log(user);

            } else {
                console.log(" NO User signed in ")
            }
        });
    }
    render() {
        return (
            <div>
                <h2>Wllcome to Online-Web-Courses</h2>
                <Button onClick={this.onSubmit} color="warning" size="lg">GoogleLogin</Button>
            </div>
        )
    }

}
export default Login;
import React,{Component,useReducer}来自“React”;
从“../services/fire”导入firebase;
从“reactstrap”导入{Button};
类登录扩展组件{
构造函数(){
超级();
此.state={
伊斯洛金:错,
姓名:“
}
}
onSubmit=()=>{
var provider=new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(提供程序)。然后(函数(结果){
//这将为您提供一个Google访问令牌。您可以使用它访问Google API。
var token=result.credential.accessToken;
//已登录的用户信息。
var user=result.user;
// ...
})
.catch(函数(错误){
console.log(错误);
});
}
componentDidMount=()=>{
firebase.auth().onAuthStateChanged(函数(用户){
如果(用户){
console.log(“用户登录”);
console.log(用户);
}否则{
console.log(“没有用户登录”)
}
});
}
render(){
返回(
Wllcome在线网络课程
谷歌登录
)
}
}
导出默认登录;
我在App.js this.state中尝试过吗?但它也不起作用。我一直看到登录页面,我想在登录后显示App.js

App.js代码

import React, { Component } from 'react';
import './App.css';
import Header from "./components/Header";
import Home from "./components/Home";
import {Container, Col, Row } from 'reactstrap';
import { ToastContainer } from 'react-toastify';
import AllCourses from './components/AllCourses';
import AddCourse from './components/AddCourse';
import Menu from './components/Menu';
import {BrowserRouter as Router, Route} from 'react-router-dom';
import firebase from './services/fire'
import Login from './components/Login';
class App extends Component {
  constructor(){
    super();
    this.state={
      user:null
    }
  }
componentDidMount(){
  this.authListner();
}
  authListner(){
  firebase.auth().onAuthStateChanged((user)=>{
if(user){
  this.setSate({user});
}else {
  this.setSate({user:null});
}
  })
}
  render(){
    return (
      <div>
          {this.state.user ? (
      
        <Router>
        <ToastContainer/>
        <Container>
          <Header/>
        <Row>
          <Col md={4}>
          <Menu/>
          </Col>
  
          <Col md={8}>
          <Route path="/" component={Home} exact/>
          <Route path="/add-courses" component={AddCourse} exact/>
          <Route path="/view-courses" component={AllCourses} exact/>
          </Col>
        </Row>
        </Container>
        </Router>
       
  ) : ( <Login/>)
  }
      </div>
      
    );
  }
}
  
  


export default App;
import React,{Component}来自'React';
导入“/App.css”;
从“/components/Header”导入标题;
从“/components/Home”导入主页;
从“reactstrap”导入{Container,Col,Row};
从'react toastify'导入{toastcainer};
从“/components/AllCourses”导入所有课程;
从“./components/AddCourse”导入AddCourse;
从“./组件/菜单”导入菜单;
从“react Router dom”导入{BrowserRouter as Router,Route};
从“./services/fire”导入firebase
从“./components/Login”导入登录名;
类应用程序扩展组件{
构造函数(){
超级();
这个州={
用户:空
}
}
componentDidMount(){
this.authListner();
}
authListner(){
firebase.auth().onAuthStateChanged((用户)=>{
如果(用户){
this.setState({user});
}否则{
this.setState({user:null});
}
})
}
render(){
返回(
{this.state.user(
) : ( )
}
);
}
}
导出默认应用程序;

将this.setState()更改为this.setState()

这是什么。setState()?您可能输入错误,应该是这个
  authListner(){
     firebase.auth().onAuthStateChanged((user)=>{
       if(user){
         this.setState({user});
       }else {
        this.setState({user:null});
       }
    })
}