当前位置: 首页 > 知识库问答 >
问题:

使用react dropzone上传器构建vite后缩小错误

东方骏
2023-03-14

我已将我的应用程序从cra迁移到vite,但现在我的dropzone上传器不工作,仅在生产中返回此错误

它看起来像是来自Dropzone组件的错误,但我不能解释为什么它在开发中工作良好,并与CRA合作

错误:未捕获错误:缩小的反应错误#130;访问 https://reactjs.org/docs/error-decoder.html?invariant=130

元件:

import Dropzone from "react-dropzone-uploader";
import api from "../../../Service/API/API";

import {lang} from "../../../Service/Translator";
import "../../../App.css"

export function UploadBox({update, closeAfterUpload, onClose, body, url, disabled}) {

   const getUploadParams = ({file, meta}) => {
      const body = new FormData()
      for (let k of Object.keys(body)) {
         body.append(k, body[k])
      }

      body.append('title', file.name.split(".")[0])
      body.append('file', file)

      return {
         url: `${api.getURL()}${url ? url : 'user/files'}`,
         body: body,
         field: {},
         headers: {Authorization: `Bearer ${api.Auth.getAccessToken()}`},
         meta: meta
      }
   }

   // called every time a file's `status` changes
   const handleChangeStatus = ({meta, file, xhr}, status) => {
      if (status === 'done') {
         let response = JSON.parse(xhr.response)
         meta.id = response.id

         api.snackAction(lang.UploadSucceed.replace('{0}', meta.name), "success")

         update ? update() : null

         if (closeAfterUpload) {
            onClose()
         }
      } else if (status === 'aborted') {
         api.snackAction(lang.UploadAborted.replace('{0}', meta.name), "warning")

      } else if (status === 'error_upload') {
         api.snackAction(lang.UploadError.replace('{0}', meta.name), "error")

      } else if (status === 'rejected_file_type') {
         api.snackAction(lang.UploadRejectedFileType, "Warning")

      } else if (status === 'removed') {
         api.Enterprise
            .Files
            .delete(meta.id)
            .then(() => {
               update ? update() : null
            })

      }

   }

   return (
      <div>
         <Dropzone
            disabled={disabled}
            body={body}
            getUploadParams={getUploadParams}
            onChangeStatus={handleChangeStatus}
            classNames={"preview_darkmode"}
            maxSizeBytes={Math.pow(2, 30)}
            // onSubmit={this.handleSubmit}
            accept="image/*,.pdf"
         />

      </div>
   );

}

共有1个答案

甄坚白
2023-03-14

由我创建以下文件并使用DropzoneFix组件,并工作:

// DropzoneFix.tsx
import Dropzone from 'react-dropzone-uploader';
function fixComponent<T>(component: T): T {
    return (component as any).default ?? component;
}
export const DropzoneFix = fixComponent(Dropzone);
 类似资料:
  • 问题内容: 这是我的 我正在与 在我的文件夹中,我只会 我也想看看未压缩的 问题答案: webpack.config.js : 自从Webpack 4 被弃用以来,其使用导致错误: webpack.optimize.UglifyJsPlugin已被删除,请改用config.optimization.minimize 如手册所述,可以使用选项替换插件。通过指定实例,可以向插件提供自定义配置: 这样就

  • 我有以下带有委托的代码: 去掉代理,缩小是正确的:

  • 我使用的是Xcode版本11.1。我的应用程序是一个Flutter应用程序。 我正在尝试使用Xcode和app Store Connect上传我的移动应用程序。我有所有必要的信息在应用商店连接除了实际的构建。基于以下错误,我无法上传构建(根据苹果): 亲爱的开发者, 我们在最近交付的应用程序“******”1.0.0(0.1)中发现了一个或多个问题。请更正以下问题,然后重新上传。 我明白第二个错误

  • 在使用自动进行隐式转换时出错。 使用int变量捕获v.size()的返回是可以的,但自动会出现问题。编译器错误确实表明这是由于转换范围缩小所致。但我想从内存的角度理解这是如何发生的,为什么auto不允许它这样做,而正常转换是可以的 由于以下行自动大小=int{v.size()}导致的错误; 主要的cpp:In函数“int main()”:main。cpp:11:27:错误:“v.std::vect

  • 问题内容: 有最紧迫的时间试图弄清楚为什么缩小不起作用。 我已经通过数组对象在网络上根据大量建议在函数之前注入了我的提供者,但仍然是“未知提供者:aProvider <-a” 定期: 缩小: 任何建议将是必须的! 问题答案: AndrewM96的建议是正确的。 对齐和空格对于Uglify和Angular都很重要。

  • 我最近的任务是使用Jenkins、GitHub和Windows Server 2008派生CI解决方案,该解决方案配置为使用Git可执行文件(在Manage Jenkins下)- 虽然wiki文章链接提供了一些见解,但我发现以下错误: 这是什么导致的?