首页 > 解决方案 > 将论据传递给行动

问题描述

我正在尝试将对象作为参数传递给用户操作,但我无法在操作中访问它。当我这样做时它只是返回 undefined console.log(dataToSubmit)。下面是动作方法:

const loginUser = (dataToSubmit) => {
    console.log(dataToSubmit)
    return (dispatch) => {
        dispatch(loginUserRequest)
        axios.post('http://localhost:5000/api/user/login' , dataToSubmit)
        .then(response => {
            if(response.data.loginSuccess){
            const user = response.data.user
            dispatch(loginUserSuccess(user))
            }
            else{
                console.log('Login attempt failed')
            }
        })
        .catch(error => dispatch(loginUserFailure(error.message)))
    }
}
export default loginUser

我在这里传递论点:

  const handleSubmit = (event) => {
    event.preventDefault();
    if (isFormValid(email , password)){
      const data = { 
        email,
        password
      }
      loginUser(data)
    }

  }

我已经将调度映射到道具:

const mapDispatchToProps = (dispatch) => {
  return{
      loginUser : () => dispatch(loginUser())
  }
}


export default connect(
  mapStateToProps,
  mapDispatchToProps
)(SignIn)

我是redux的新手。谢谢

标签: reactjsreact-redux

解决方案


You need to pass the argument in mapDispatchToProps

const mapDispatchToProps = (dispatch) => {
  return{
    loginUser : (data) => dispatch(loginUser(data))
  }
}

推荐阅读