Javascript 正在尝试从mapDispatchToProps发送的操作创建者返回承诺
我有一个这样的动作创造者Javascript 正在尝试从mapDispatchToProps发送的操作创建者返回承诺,javascript,reactjs,redux,promise,Javascript,Reactjs,Redux,Promise,我有一个这样的动作创造者 export const register = user => { return dispatch => { dispatch(requestRegistation()); return new Promise((resolve, reject) => { Axios.post(make_url('/users'), { user: user }).then(response => { if (re
export const register = user => {
return dispatch => {
dispatch(requestRegistation());
return new Promise((resolve, reject) => {
Axios.post(make_url('/users'), { user: user }).then(response => {
if (response.data.errors) {
reject(response.data.errors);
}
if (response.data.user) {
resolve(response.data.user);
}
});
});
};
};
handleSubmit: (values, props) => {
props.props.register(values).then(
response => {
console.debug('response', response);
},
errors => {
console.debug('errors', error);
},
);
}
const mapDispatchToProps = (dispatch, ownProps) => {
return {
register: user => {
dispatch(register(user));
},
};
};
我有一张这样的表格
export const register = user => {
return dispatch => {
dispatch(requestRegistation());
return new Promise((resolve, reject) => {
Axios.post(make_url('/users'), { user: user }).then(response => {
if (response.data.errors) {
reject(response.data.errors);
}
if (response.data.user) {
resolve(response.data.user);
}
});
});
};
};
handleSubmit: (values, props) => {
props.props.register(values).then(
response => {
console.debug('response', response);
},
errors => {
console.debug('errors', error);
},
);
}
const mapDispatchToProps = (dispatch, ownProps) => {
return {
register: user => {
dispatch(register(user));
},
};
};
在我看来,我似乎没有兑现承诺
signup.js:186 Uncaught (in promise) TypeError: Cannot read property 'then' of undefined
signup.js:186相对于props.props.register(值)。然后(
我感觉自己很接近,但我不确定我在这里缺少了什么?您没有从
mapDispatchToProps
中的register
函数返回承诺。您可以删除函数体以使返回隐式,或者添加return
语句
const mapDispatchToProps = (dispatch, ownProps) => {
return {
register: user => dispatch(register(user)),
};
};
尝试从props函数中删除函数体
{}
。register:user=>dispatch(register(user))
以使其隐式返回承诺。您现在不会从该函数返回任何内容。请看,太棒了!谢谢!就是这样。@Tholle