【问题标题】:Redux Form action undefinedRedux 表单动作未定义
【发布时间】:2019-10-29 17:19:20
【问题描述】:

我正在尝试进行授权。 我从 reduxForm 获取数据,它是可见的,但由于某种原因,数据不会立即进入函数,而是执行操作,我得到一个未定义的值。 注册也是按照同样的原则进行的,但是没有错误。

我的错误在哪里?

REDUX

const NewUserEror = "NewUserEror";
const RegSucces = "RegSucces";
const RegStart = "RegStart";
const RegEnd = "RegEnd";

let initialState = {
  error: null,
  loading: false
};

const registrationReducer = (state = initialState, action) => {
  switch (action.type) {
    case RegSucces:
      return {
        ...state,
        error: false
      };
    case NewUserEror:
      return {
        ...state,
        error: action.payload
      };
    case RegStart:
      return {
        ...state,
        loading: true
      };
    case RegEnd:
      return {
        ...state,
        loading: false
      };

    default:
      return state;
  }
};
export const LogInUser = data => async (
  dispatch,
  getState,
  { getFirebase }
) => {
  const firebase = getFirebase();
  dispatch({ type: RegStart });
  try {
    await firebase.auth().signInWithEmailAndPassword(data.email, data.password);
    dispatch({ type: RegSucces });
  } catch (err) {
    dispatch({ type: NewUserEror, payload: err.message });
  }
  dispatch({ type: RegEnd });
};


CONTAINER

import React from "react";
import { connect } from "react-redux";
import Login from "./login";
import LogInUser from "./../../../redux/registrationReducer"
class AuthBox extends React.Component{

  Userlogin=(formdata)=>{

    this.props.LogInUser(formdata)
  }
  render(){
    return<Login {...this.props} Userlogin={this.Userlogin}></Login>
  }
}

let mapStateToProps=(state)=>{
  return{
  loading:state.Regis.loading,
  error:state.Regis.error
  }
}



export default connect(mapStateToProps,{LogInUser})(AuthBox);



COMPONENT

const Login = props => {
  let onSubmit = formData => {
  props.Userlogin(formData);
  };
  return (
    <div className={classes.formbox}>
      <div className={classes.form}>
        <h5 className={classes.formtitle}>Вход</h5>
        <LoginForm onSubmit={onSubmit}></LoginForm>
      </div>
    </div>
  );
};

export default Login;

Error

Action undefined

p.s 对不起我的英语

【问题讨论】:

  • 你能像你一样将代码拆分成文件吗?我不清楚的一件事是您正在使用export const LogInUser ... 进行命名导出,但在您的容器中您正在使用import LogInUser from "..."; 进行默认 导入,这是行不通的。不确定这是否与您的问题有关。
  • @Jacob 你是对的,谢谢!。

标签: javascript reactjs firebase redux


【解决方案1】:

非默认导出必须在 {}

import React from "react";
import { connect } from "react-redux";
import Login from "./login";

////// here
import {LogInUser} from "./../../../redux/registrationReducer"
////

class AuthBox extends React.Component{

  Userlogin=(formdata)=>{

    this.props.LogInUser(formdata)
  }
  render(){
    return<Login {...this.props} Userlogin={this.Userlogin}></Login>
  }
}

let mapStateToProps=(state)=>{
  return{
  loading:state.Regis.loading,
  error:state.Regis.error
  }
}



export default connect(mapStateToProps,{LogInUser})(AuthBox);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2018-04-14
    • 2019-05-17
    • 2018-10-14
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    相关资源
    最近更新 更多