![](/img/trans.png)
[英]Attempted import error: './movieReducer' does not contain a default export (imported as 'movieReducer')
[英]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()
。
之前可以訪問默認狀態,這在新版本中不可用。
請仔細閱讀更新: 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_modules和package-lock.json並重新安裝npm install和npm install react-scripts后,它對我有用。
正如其他人已經說過的,解構變量:
const { v4 as uuid } from 'uuid';
在您的代碼中使用:
const id = uuid();
如果您在 Jest 測試中遇到此錯誤,請將以下內容添加到您的 moduleNameMapper:
moduleNameMapper: {
'^uuid$': 'uuid'
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.