【问题标题】:Create Action with payload使用有效负载创建操作
【发布时间】:2019-04-26 14:11:58
【问题描述】:

我正在编写一个带有 redux 和 redux-actions 的 ReactJS 应用程序。 我想在有效负载中创建一个带有登录详细信息的 redux-action,如下所示:

{
   type: 'AUTH_REQUEST',
   payload: { login: 'Foo', password: 'bar' },
}

...但是我所有的尝试都没有成功。

根据documentation 应该有一种方法可以在有效负载中添加数据,但是我对前端堆栈的熟练程度还不够,无法真正理解。

这是我目前所拥有的:

action.js

import { createAction } from 'redux-actions';

export const AUTH_REQUEST = 'AUTH_REQUEST'

export const authRequest = createAction(AUTH_REQUEST);

loginFormContainer.js

const mapStateToProps = state => ({
    isLoggedIn: state.authentication.isLoggedIn
})

const mapDispatchToProps = dispatch => ({
    authRequest: () => dispatch(authRequest())
})

export const LoginFormContainer = connect(
    mapStateToProps,
    mapDispatchToProps
)(LoginForm)

loginForm.js

  constructor(props) {
    super(props);
    this.state = {
      email: '',
      password: '',
      errors: {email: '', password: ''},
      emailValid: false,
      passwordValid: false,
      formValid: false
    };
    this.handleEmailChange = this.handleEmailChange.bind(this);
    this.handlePasswordChange = this.handlePasswordChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

 handleSubmit(event) {
    event.preventDefault();
    this.props.authRequest();
  }

我相信我应该能够在处理提交时提供存储在 loginForm 状态中的电子邮件和密码,但我不知道该怎么做......(是的,我是新手js)。有谁能帮我看看吗?

【问题讨论】:

    标签: javascript reactjs redux redux-actions


    【解决方案1】:

    action.js

    const authRequest = createAction(AUTH_REQUEST, (login, password) => ({ login, password }));
    

    loginFormContainer.js

    const mapDispatchToProps = dispatch => ({
        authRequest: (...args) => dispatch(authRequest(...args))
    })
    

    loginForm.js

    handleSubmit(event) {
        event.preventDefault();
        const { email, password } = this.state;
        this.props.authRequest(email, password);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      相关资源
      最近更新 更多