react-widget icon indicating copy to clipboard operation
react-widget copied to clipboard

The Upload Widget doesn't render in React Strict Mode

Open atapas opened this issue 3 years ago • 1 comments

Describe the bug

If My React component is enclosed with React.StrictMode, the Upload button doesn't appear always.

Install Create React App. Make sure the index.js file has the React.StrictMode Now write a component to import the widget.

Expected behavior

The widget should appear.

Code / screenshots

In index.js file

<React.StrictMode>
  <UploadFile />      
</React.StrictMode>

in UploadFile.js(JSX part)

<p>
              <label htmlFor="file">Your file:</label>{" "}
              <Widget 
                publicKey={process.env.REACT_APP_UPLOADCARE_API_SECRET_KEY} 
                id="file" 
                onChange = {(info) => uploadFileChange(info)}
                onFileSelect = {(file) => uplodFileSelect(file)} />
            </p>

The screen without the upload button:

image

The Warning in the console

image

Everything works fine if I remove the Strict Mode. The app is on React 18

image

Environment

  • Library version: ^2.0.0
  • Language/framework version: React 18.0.0
  • OS version: Windows 10

atapas avatar Apr 23 '22 15:04 atapas

Hey @atapas!

I bumped react to v18 and fixed working under React.StrictMode, see https://github.com/uploadcare/react-widget/pull/321. It will be released asap.

As for your screenshot - this warning wasn't caused by react-widget, it's something on your side. Try to grep your codebase with UNSAFE_componentWillMount and SideEffect keywords to detect the warning source.

nd0ut avatar Apr 29 '22 12:04 nd0ut