You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React使用Uppy插件出现Super expression must either be null or a function报错

报错原因&排查方案

这个报错在Uppy使用场景中90%由以下几个问题引发,按优先级排查即可:

  • 优先确认所有Uppy相关依赖版本完全一致
    不同步的版本会导致内部类继承逻辑异常,直接触发该报错,你可以先卸载现有Uppy依赖再统一安装同版本稳定包:
    # 卸载旧依赖
    npm uninstall @uppy/core @uppy/react @uppy/tus
    # 安装同版本最新稳定依赖
    npm install @uppy/core@latest @uppy/react@latest @uppy/tus@latest
    
  • 补全代码缺失的必要配置
    你当前代码漏了useUppy的依赖数组、DashboardModal的受控显隐属性、以及必要的样式导入,修改后的可用代码如下:
    import Uppy from '@uppy/core';
    import { DashboardModal, useUppy } from '@uppy/react';
    import Tus from '@uppy/tus';
    import React from 'react';
    // 导入必要样式,漏加也会触发渲染异常
    import '@uppy/core/dist/style.min.css';
    import '@uppy/dashboard/dist/style.min.css';
    
    const FileUploaderMulti = () => {
      // 第二个参数传入空依赖数组,保证Uppy实例只初始化一次
      const uppy = useUppy( () => {
        return new Uppy()
          .use( Tus, { endpoint: 'https://tusd.tusdemo.net/files' } );
      }, []);
      // DashboardModal为受控组件,需要open和onClose属性控制显隐
      const [isModalOpen, setIsModalOpen] = React.useState(false);
    
      return (
        <>
          <button onClick={() => setIsModalOpen(true)}>打开上传面板</button>
          <DashboardModal 
            uppy={uppy} 
            open={isModalOpen}
            onClose={() => setIsModalOpen(false)}
          />
        </>
      );
    };
    
    export default FileUploaderMulti;
    
  • 若以上操作后仍报错,检查你的React版本是否在16.8及以上,Uppy的React绑定依赖Hook特性,低于该版本需要先升级React。

内容的提问来源于stack exchange,提问作者alamgir kabir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:15:03