我有一个像这样的动作创作者。
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(values).then(
我跌倒了,好像我快要走了,但是我不确定我在这里想念什么吗?
答案 0 :(得分:1)
您没有从register
中的mapDispatchToProps
函数返回承诺。您可以删除函数主体以使返回值隐式,也可以添加return
语句。
const mapDispatchToProps = (dispatch, ownProps) => {
return {
register: user => dispatch(register(user)),
};
};