【发布时间】:2018-07-18 07:17:33
【问题描述】:
使用导入类中的函数时,我从 webpack 收到 TypeError。
我收到TypeError: __WEBPACK_IMPORTED_MODULE_6_clients_FilesClient__.a.upload(...) is undefined
我正在导出我的课程:
export default(FilesClient = new FilesClient());
并将其导入到我的组件中:
import FilesClient from "clients/FilesClient";
当我这样使用客户端时:
acceptedFiles.forEach(file => {
FilesClient.upload(file, this.props.proposalId)
.then(data => {
....
类型错误被抛出。我不确定这是为什么...我能够将对象和函数记录到控制台并且请求成功发出,但是反应应用程序在响应恢复正常之前崩溃了。
这与我导出/导入其他几个客户端的方式相同,但是到目前为止我只使用这些客户端发出 GET 请求……不知道为什么这个会搞砸。我可以把这个函数从这个客户端类中拿出来就可以了,只是想弄清楚Webpack的问题。
仅供参考,这里是 Webpack 所说的未定义函数的类:
import Client from "./Client";
class FilesClient extends Client {
upload = (file, proposalId) => {
const url = `/api/proposals/${proposalId}/uploadfile`;
let formData = new FormData();
formData.append("file", file, file.name);
fetch(url, {
method: "POST",
body: formData
}).then(response => {
if (!response.ok) {
console.log(response);
throw Error("File upload failed", response);
}
return response.json();
});
}
}
export default (FilesClient = new FilesClient());
提前致谢!
【问题讨论】:
标签: reactjs webpack ecmascript-6 babeljs