简体   繁体   中英

Attempted import error: 'uuid' does not contain a default export (imported as 'uuid') In React

Error is :Attempted import error: 'uuid' does not contain a default export (imported as 'uuid')

This is the Code Sample

import uuid from "uuid";
//import * as uuid from "uuid";
import TodoInput from "./components/TodoInput";
import TodoList from "./components/TodoList";

export default class App extends Component {
state = {
  items: [
    { id: 1, title: "wake up" },
    { id: 2, title: "make breakfast" }
  ],
  id: uuid(),
  item: "",
  editItem: false
};
....
....

What Could be the Reason Behind This?

Because the uuid package has not default export, as the error clearly states.

( it used to exist, but has been removed )

Once installed, decide which type of UUID you need. RFC4122 provides for four versions, all of which are supported here.

( documentation at https://www.npmjs.com/package/uuid )

so you need to choose one of the following

import {v1 as uuid} from "uuid"; 
// import {v3 as uuid} from "uuid"; 
// import {v4 as uuid} from "uuid"; 
// import {v5 as uuid} from "uuid"; 

depending on the implementation you want.


If you are using an older version of the package you could use one of

import uuid from 'uuid/v1'
// import uuid from 'uuid/v3'
// import uuid from 'uuid/v4'
// import uuid from 'uuid/v5'

Once you do yarn add uuid , the uuid folder in node_modules contains v1,v2,v3,v4 modules. import any of them according to your choice as uuid.

import {v4 as uuid} from 'uuid'
const id = uuid()

This solved my problem. versions "uuid": "^7.0.3" and "react": "^16.13.1",

This worked for me.

Firstly, run

npm install uuid

then

import { v4 as uuidv4 } from 'uuid';

To use it just call

uuidv4();

This worked for me.

Firstly, run

npm install uuid

then

import { v4 as uuidv4 } from 'uuid';

To use it just call uuidv4() .

Use react-uuid

npm i react-uuid
import uuid from 'react-uuid';

const id = uuid();

Earlier it was possible to access the default state, which is not available in new release.
Kindly go through the updates: https://www.npmjs.com/package/uuid .

import { v4 as uuidv4 } from 'uuid';

There are other possible access ways provided in package in npm documentation.

Default exports have been removed as stated on the npm page of UUID .

From nmpjs.com

Default Export Removed

uuid@3 was exporting the Version 4 UUID method as a default export:

 const uuid = require('uuid'); // <== REMOVED!

This usage pattern was already discouraged in uuid@3 and has been removed in uuid@7 .

in the command line install uuid:

npm i react-uuid

in your project:

import { v4 as uuid } from "uuid";

const id = uuid();

I think if you add to uuid when you import it v4 I think it will work

What I mean is like this

import uuid from 'uuid/v4';

Instead of doing: import uuid from 'uuid'

This worked for me(For creating random string): import uuid from 'uuid/v4'

I used this:

import v1 from 'uuid/v1.js' 

const uuid = v1;

and it worked!!

In the command line, run

npm i react-uuid

then in your project, try

import uuid from 'react-uuid';
const id = uuid();

write

const uuid = require('uuid');

instead of

import uuid from 'uuid'

import uuid from 'uuid/dist/v4'
这会起作用

Sometimes and often times (due to some incomplete/interrupted dependency installations) all you need to do is delete the node_modules folder and run npm install once more.
Voila (in most cases).

Create Version 4 (Random) UUIDs

import { v4 as uuidv4 } from 'uuid';

id:uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' https://www.npmjs.com/package/uuid

删除node_modulespackage-lock.json并重新安装npm installnpm install react-scripts后,它对我有用。

As others have already stated, destructure the variable:

const { v4 as uuid } from 'uuid';

For use in your code:

const id = uuid();

If you are coming across this error in your Jest tests add the following to your moduleNameMapper:

moduleNameMapper: {
    '^uuid$': 'uuid'
}
  1. yarn add uuid
  2. import {v4 as uuid} from 'uuid'
  3. console.log(uuid());

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM