使用 React 组件登录 Firebase [英] Firebase Login with React Components
问题描述
基本思想是在 React 中进行 Firebase 登录.
组件自行呈现,但它们不协同工作.主要问题是在调用 onAuthStateChanged() 方法后,渲染函数不会采用新"状态.我究竟做错了什么?
非常感谢你们!
var Login = React.createClass ({getInitialState: 函数(){返回{登录:'假'};},句柄登录:函数(事件){var email = document.getElementById('email').value;var password = document.getElementById('password').value;firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {//错误处理var errorCode = error.code;var errorMessage = error.message;//[...错误处理...]});this.setState({ 登录: '真' });},认证用户:函数(x){//初始化变量配置 = {[...配置的东西...]};firebase.initializeApp(config);//检查是否已登录firebase.auth().onAuthStateChanged(function(user) {如果(用户){//用户已登录console.log('authenticateUser(): true');this.setState({ 登录: '真' });}别的 {//用户已退出console.log('authenticateUser(): false');this.setState({ 登录: '假' });}});},whichWindowToShow:函数(){如果 (this.state.loggedIn === '未知'){返回 (<div><加载类型='气泡'颜色='#e3e3e3'/>
);}否则如果(this.state.loggedIn === '真'){返回 (<div><后端/>
);}别的 {返回 (<div className="login_wrapper"><div className="login_box"><h1>会员登录</h1><div className="login_fields"><input type="text" id="email" name="email" placeholder="mail"/><input type="password" id="password" name="password" placeholder="password"/><button id="signin" name="signin" onClick={this.handleLogIn}>登录</button>