Reputation: 1288
How can I import uploadcare into a react.js project?
My imports section looks like this
// main imports
import React from 'react';
import {render} from 'react-dom';
import { Router, Route, hashHistory } from 'react-router'
import jQuery from '../scripts/jquery-1.8.3.min.js'
import uploadcare from '../lib/uploadcare.min.js'
And then I would like to use uploadcare like this (via the javascript API):
onAddPhotosClick: function() {
console.log("++ add photos");
uploadcare.openDialog(null, {
publicKey: "xxxxxxxxxxxx",
imagesOnly: true,
tabs: "file url facebook gdrive dropbox instagram evernote flickr skydrive"
});
},
My code reaches the openDialog line, and then throws this error:
:8081/static/react_build/bundle.js:86 Uncaught TypeError: _uploadcareMin2.default.openDialog is not a function
Earlier, during the page load, my console logs:
Global public key not set. Uploads may not work!
Add this to the <head> tag to set your key:
<script>
UPLOADCARE_PUBLIC_KEY = 'your_public_key';
</script>
:8081/static/react_build/bundle.js:85 ++ add photos
The fact that I get this brown warning message above (which I am ok with because I am hoping to set the public key directly through the javascript API) makes me think that uploadcare.js file has been included properly, but the uploadCareMin2 error makes me think that I am not importing it quite correctly.
TL;DR; How can I import the uploadcare Javascript API into a react.js project?
Thank you for any help.
Upvotes: 0
Views: 825
Reputation: 8204
You can now also use npm install as documented on uploadcare's website:
NPM
npm install uploadcare-widget
ES6 usage way:
import uploadcare from 'uploadcare-widget';
CommonJS usage way:
var uploadcare = require('uploadcare-widget);
Upvotes: 0
Reputation: 7209
Not sure what uploadcare
is but try
import '../lib/uploadcare.min.js'
It looks like you're importing the file directly meaning you would have to hope the author exported the file as export default
in order to import it the way you showed. It's likely they just stick it in global space.
If not, it's also possible they exported a named value so try:
import { uploadcare } from '../lib/uploadcare.min.js';
Upvotes: 1