尝试导入错误:'uuid' 不包含默认导出(作为 'uuid' 导入)在 React 中

PRA*_*PUT 46 javascript uuid reactjs

错误是:尝试导入错误:'uuid' 不包含默认导出(导入为 'uuid')

这是代码示例

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
};
....
....
Run Code Online (Sandbox Code Playgroud)

这背后的原因是什么?

Gab*_*oli 103

因为uuid包没有default导出,正如错误明确指出的那样。

它曾经存在,但已被删除

安装后,确定您需要哪种类型的 UUID。RFC4122 提供了四个版本,这里都支持。

文档在https://www.npmjs.com/package/uuid

所以你需要选择以下之一

import {v1 as uuid} from "uuid"; 
// import {v3 as uuid} from "uuid"; 
// import {v4 as uuid} from "uuid"; 
// import {v5 as uuid} from "uuid"; 
Run Code Online (Sandbox Code Playgroud)

取决于你想要的实现。


如果您使用的是旧版本的软件包,您可以使用其中之一

import uuid from 'uuid/v1'
// import uuid from 'uuid/v3'
// import uuid from 'uuid/v4'
// import uuid from 'uuid/v5'
Run Code Online (Sandbox Code Playgroud)

  • `import uuid from 'uuid/v4'` 对我有用。谢谢! (2认同)

Nko*_*ula 20

完成后yarn add uuid,node_modules 中的 uuid 文件夹包含 v1、v2、v3、v4 模块。根据您的选择将其中任何一个导入为 uuid。

import {v4 as uuid} from 'uuid'
const id = uuid()
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题。版本“uuid”:“^7.0.3”和“反应”:“^16.13.1”,


小智 14

这对我有用。

首先,运行

npm install uuid
Run Code Online (Sandbox Code Playgroud)

然后

import { v4 as uuidv4 } from 'uuid';
Run Code Online (Sandbox Code Playgroud)

要使用它只需调用

uuidv4();
Run Code Online (Sandbox Code Playgroud)


小智 10

这对我有用。

首先,运行

npm install uuid
Run Code Online (Sandbox Code Playgroud)

然后

import { v4 as uuidv4 } from 'uuid';
Run Code Online (Sandbox Code Playgroud)

要使用它只需调用uuidv4().