我对 React 和 Redux 还很陌生,在想出构建异步文件上传的最佳方法时遇到了一些麻烦。
我想要的是
- 用户点击表单的提交按钮
- 上传文件,服务器返回上传文件的路径
- 在发送最终 POST 请求之前,使用这些路径更新状态
我现在想做的是将表单或某些更高级别的组件传递给动作处理程序,就像这样
// actions.js
// using redux-thunk middleware, so this action creator
// dispatches actions on success and error events
submitForm({ formElement }) {
return (dispatch, getState) => {
// ... do some stuff
fetch('/files', {
method: 'POST',
body: new FormData(formElement)
})
.then(() => dispatch(uploadSuccess()));
}
}
这是一个坏主意吗?有没有FormData
比将表单元素传递给动作创建者更好的方法?