我正在使用反应+redux。我有一个带有数据和图像的模态表单,成功后我需要关闭从 redux 返回的模态否则显示错误。在调度函数中,我还有 1 个回调函数来将图像存储到 S3。我正在从 redux-thunk 返回承诺,但我不断收到“TypeError:无法读取未定义的属性 'then'”。零件handleSubmit = e => { e.preventDefault(); if(this.isFieldEmpty()){ this.setState({ message: "All fields are mandatory with at least 1 pic" }); return; } else { this.setState({ message: "" }); } const data = { name: this.state.name, description : this.state.description, points : this.state.points, attributes : this.state.attributes, images : this.state.images, created_by: localStorage.getItem('id'), } this.props.createItem(data).then(() => { this.hideModal(); }) }const mapDispatchToProps = dispatch => { return { createItem: data => { return dispatch(createItem(data)) }, };};行动const saveItemImages = (images,successcb, failurecb) => { if(images.length > 0){ const formData = new FormData(); for(var x = 0; x<images.length; x++) { formData.append('image', images[x]) } const token = localStorage.getItem('token'); fetch(`${backendUrl}/upload/item-images/`, { method: "POST", headers: { 'Authorization': `Bearer ${token}` }, credentials: 'include', body: formData }) .then(res => { if(res.status === 200){ res.json().then(resData => { successcb(resData.imagesUrl); }); }else{ res.json().then(resData => { failurecb(resData.message); }) } }) .catch(err => { console.log(err); }); } else { successcb([]); }}
1 回答

Cats萌萌
TA贡献1805条经验 获得超9个赞
您应该返回 aPromise为这样的操作创建异步流:
export const createItem = data => dispatch => new Promise((resolve, reject) => {
// do something was a success
resolve();
// do something was a fail
reject();
});
添加回答
举报
0/150
提交
取消