Javascript 登录后,我想将我的页面重定向到app.js
我已经进入了登录页面,在我登录之后,我想重定向到App.js,但我不知道怎么做 我在app.js中尝试过,但不起作用。它会显示登录页面 Login.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
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});
}
})
}