我正在使用axios在我的项目中创建一个restful api。基于服务器响应,我正在尝试发送一个动作。
restful api code
handleSubmit(e){
console.log("form submit");
e.preventDefault();
const forms=new FormData(e.target);
axios.post("http://localhost:8080/reactLogin",forms).then(res=> {
console.log(res.data);
this.props.loginSubmit(res.data);
}).catch(err=>console.log(err))
}
在react-redux中调度操作的代码
const mapStateProps=(state) => {
return {
userLogin:state.loginDetails
}
}
const mapDispatchProps=(dispatch) => {
return {
loginSubmit:(data) => {
console.log(data);
if(data.status==1) {
dispatch(loginSuccess(data.data[0]));
}
else {
dispatch(loginFail(data))
}
},
emailInputBorder:(data) => {
dispatch(emailBorder(data));
},
passwordInputBorder:(data) => {
dispatch(passwordBorder(data));
}
}
}
export default connect(mapStateProps,mapDispatchProps)(Login)
当我尝试在我的restful api响应中发送一个动作时,它会显示以下错误
TypeError: Cannot read property 'props' of undefined
这里的问题是什么?
答案 0 :(得分:1)
如果您使用的是功能组件,则可以直接访问props
,而无需使用this
关键字。
直接使用props.loginSubmit
等方法访问该方法。
由于我无法查看您的整个文件,因此这只是一个预先假设。如果您可以共享整个代码,将会很有帮助。