Cloudinary openUploadWidget 在我的反应应用程序中抛出错误

Posted

技术标签:

【中文标题】Cloudinary openUploadWidget 在我的反应应用程序中抛出错误【英文标题】:Cloudinary openUploadWidget throw error in my react app 【发布时间】:2019-01-16 02:11:12 【问题描述】:

我似乎做得不对,但我不知道是什么。我需要在我的网络应用程序中打开云上传小部件,它一直抛出这个错误;类型错误:__WEBPACK_IMPORTED_MODULE_6_cloudinary___default.a.openUploadWidget 不是函数。

我正在使用 react,这就是我使用它的方式......

    load = (e) => 
    e.preventDefault();
    cloudinary.openUploadWidget( cloud_name: 'classvideo', upload_preset: 'classVideo' ,
      function (error, result)  console.log(result) );
  

这就是我尝试通过单击渲染方法中的按钮来渲染它的方式...

   <div>
      <button onClick=this.load>upload Image</button>
   </div>

这是我的html中的脚本标签

  <script src="//widget.cloudinary.com/global/all.js" type="text/javascript" />
  <script src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>

我做错了什么吗? webpack 和这个有什么关系? 请帮忙

【问题讨论】:

cloudinary 将是一个全局对象,如果您使用的是脚本标签。也许你也在写import cloudinary from 'cloudinary'之类的东西?如果是这种情况,请尝试删除该行。 谢谢,@Tholle 现在我明白我不需要 import 声明了。删除导入语句并添加“窗口”。 'cloudinary.openUploadWidget' 的背面完美运行。 【参考方案1】:

尝试添加window.cloudinary.openUploadWidget(..

【讨论】:

【参考方案2】:

cloudinary 将是一个全局对象,如果您使用单独的脚本标签加载它。

如果您删除影响全局对象的导入,它将按预期工作。

// import cloudinary from 'cloudinary';

【讨论】:

【参考方案3】:

Rect 可以使用React Cloudinary Uploader,此时在 React 中处理 Cloudinary 是一个很好的解决方案。

【讨论】:

【参考方案4】:

如果您登陆这篇文章但使用的是 Angular,请注意您必须:

在 angular.json 中包含脚本

从 index.html 引用脚本

...然后在组件中声明cloudinary变量

请注意,我没有使用远程脚本参考,但已下载小部件源代码并将其包含在我的项目中。

【讨论】:

以上是关于Cloudinary openUploadWidget 在我的反应应用程序中抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

Heroku Cloudinary 插件与 cloudinary.com。有啥不同?

由于“cloudinary.uploader 未定义”错误,从 cloudinary 中删除媒体文件失败

Android Studio:将图像从 Android Studio 上传到 Cloudinary (https://cloudinary.com/)

我正在尝试使用 Cloudinary post API 上传图像而不使用 Cloudinary SDK

cloudinary -base 64 图像上传给出无效的 JSON 响应

从浏览器错误请求直接上传到 Cloudinary