代码之家  ›  专栏  ›  技术社区  ›  Daniel

Firebase的反应:有人能看到电子邮件格式不正确的地方吗?

  •  -1
  • Daniel  · 技术社区  · 7 年前

    我能再看一眼吗。

    LoginForm.js :

    import React, { Component } from 'react';
    import { connect } from 'react-redux';
    import { emailChanged, passwordChanged, loginUser } from '../actions';
    import { Card, CardSection, Input, Button } from './common';
    
    class LoginForm extends Component {
      onEmailChanged(text) {
        this.props.emailChanged(text);
      }
    
      onPasswordChange(text) {
        this.props.passwordChanged(text);
      }
    
      onButtonPress() {
        const { email, password } = this.props;
        this.props.loginUser({ email, password });
      }
    
      render() {
        return (
          <Card>
            <CardSection>
              <Input
                label="Email"
                placeholder="email@gmail.com"
                onChangeText={this.onEmailChanged.bind(this)}
                value={this.props.email}
              />
            </CardSection>
    
            <CardSection>
              <Input
                secureTextEntry
                label="Password"
                placeholder="password"
                onChangeText={this.onPasswordChange.bind(this)}
                value={this.props.password}
              />
            </CardSection>
    
            <CardSection>
              <Button onPress={this.onButtonPress.bind(this)}>Login</Button>
            </CardSection>
          </Card>
        );
      }
    }
    
    const mapStateToProps = state => {
      return {
        email: state.auth.email,
        password: state.auth.password
      };
    };
    
    export default connect(mapStateToProps, {
      emailChanged,
      passwordChanged,
      loginUser
    })(LoginForm);
    

    actions/index.js :

    import firebase from 'firebase';
    import { EMAIL_CHANGED, PASSWORD_CHANGED } from './types';
    
    export const emailChanged = text => {
      return {
        type: 'EMAIL_CHANGED',
        payload: text
      };
    };
    
    export const passwordChanged = text => {
      return {
        type: 'PASSWORD_CHANGED',
        payload: text
      };
    };
    
    export const loginUser = ({ email, password }) => {
      return dispatch => {
        firebase
          .auth()
          .signInWithEmailAndPassword(email, password)
          .then(user => {
            dispatch({ type: 'LOGIN_USER_SUCCESS', payload: user });
          });
      };
    };
    

    types.js :

    export const EMAIL_CHANGED = 'email_changed';
    export const PASSWORD_CHANGED = 'password_changed';
    

    AuthReducer.js :

    import { EMAIL_CHANGED, PASSWORD_CHANGED } from '../actions/types';
    
    const INITIAL_STATE = { email: '', password: '' };
    
    export default (state = INITIAL_STATE, action) => {
      console.log(action);
      switch (action.type) {
        case EMAIL_CHANGED:
          return { ...state, email: action.payload };
        case PASSWORD_CHANGED:
          return { ...state, password: action.payload };
        default:
          return state;
      }
    };
    

    看起来错误来自firebase,但我没有找到任何与我的错误相关的文档。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Daniel    7 年前

    因此,在查看了代码一段时间之后,在这里与同事讨论代码并尝试不同的修复。

    另一位同事提到了他们自己的action-creator问题,这与我的类似。所以我决定看看我的 actions/index.js 如果你看一下 type: 'EMAIL_CHANGED' type: EMAIL_CHANGED ,不需要引号。

    {type: "LOGIN_USER_SUCCESS", payload: Lk}

    推荐文章