簡體   English   中英

嘗試導入錯誤:“uuid”在 React 中不包含默認導出(導入為“uuid”)

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

錯誤是:嘗試導入錯誤:“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
};
....
....

這背后的原因是什么?

因為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"; 

取決於你想要的實現。


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

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

執行yarn add uuid后,node_modules 中的 uuid 文件夾包含 v1、v2、v3、v4 模塊。 根據您的選擇將它們中的任何一個導入為 uuid。

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

這解決了我的問題。 版本“uuid”:“^7.0.3”和“react”:“^16.13.1”,

這對我有用。

首先,運行

npm install uuid

然后

import { v4 as uuidv4 } from 'uuid';

要使用它,只需調用

uuidv4();

這對我有用。

首先,運行

npm install uuid

然后

import { v4 as uuidv4 } from 'uuid';

要使用它,只需調用uuidv4()

使用react-uuid

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

const id = uuid();

之前可以訪問默認狀態,這在新版本中不可用。
請仔細閱讀更新: https ://www.npmjs.com/package/uuid。

import { v4 as uuidv4 } from 'uuid';

npm 文檔中的包中還提供了其他可能的訪問方式。

UUID 的 npm 頁面所述,默認導出已被刪除。

來自 nmpjs.com

默認導出已刪除

uuid@3 將版本 4 UUID 方法導出為默認導出:

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

這種使用模式已經在uuid@3中被勸阻,並在uuid@7中被移除。

在命令行中安裝 uuid:

npm i react-uuid

在您的項目中:

import { v4 as uuid } from "uuid";

const id = uuid();

我認為如果您在導入 v4 時添加到 uuid,我認為它會起作用

我的意思是這樣的

import uuid from 'uuid/v4';

而不是這樣做:從'uuid'導入uuid

這對我有用(用於創建隨機字符串): import uuid from 'uuid/v4'

我用這個:

import v1 from 'uuid/v1.js' 

const uuid = v1;

它奏效了!!

在命令行中,運行

npm i react-uuid

然后在你的項目中,嘗試

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

const uuid = require('uuid');

代替

import uuid from 'uuid'

import uuid from 'uuid/dist/v4'
這會起作用

有時並且經常(由於一些不完整/中斷的依賴項安裝),您需要做的就是刪除node_modules文件夾並再次運行npm install
瞧(在大多數情況下)。

創建版本 4(隨機)UUID

從 'uuid' 導入 { v4 as uuidv4 };

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

刪除node_modulespackage-lock.json並重新安裝npm installnpm install react-scripts后,它對我有用。

正如其他人已經說過的,解構變量:

const { v4 as uuid } from 'uuid';

在您的代碼中使用:

const id = uuid();

如果您在 Jest 測試中遇到此錯誤,請將以下內容添加到您的 moduleNameMapper:

moduleNameMapper: {
    '^uuid$': 'uuid'
}
  1. 紗線添加uuid
  2. 從 'uuid' 導入 {v4 as uuid}
  3. 控制台.log(uuid());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM