在Angular 5中使用lodash.clonedeep时出错

时间:2018-02-25 10:07:27

标签: javascript angular lodash

首先,我以前从未使用过lodash.clonedeep,但对JavaScript了如指掌。

从我的包中,json文件:     “lodash.clonedeep”:“4.5.0”,

import { cloneDeep } from 'lodash.clonedeep';

editStart(): void {
   this.oldData = cloneDeep(this.currentData);
   this.editing = true;
}

错误:ERROR TypeError:lodash_clonedeep_1.cloneDeep不是函数

非常感谢,因为我没有选择,已阅读并尝试了很多选项。我有一个解决方法,使用几个对象,但想尽可能避免。

2 个答案:

答案 0 :(得分:4)

您的导入声明不正确。

您应该导入完整的库:

import * as _ from 'lodash';
...
let foo = _.cloneDeep(bar);

或者只导入cloneDeep函数:

import * as cloneDeep from 'lodash/cloneDeep';
...
let foo = cloneDeep(bar);

答案 1 :(得分:0)

我在Angular 7上的经验:

在src项目中使用时:

import * as cloneDeep from "lodash/cloneDeep";

在图书馆项目中使用时:

import cloneDeep from "lodash/cloneDeep";

注意:更好地导入每个模块以减小主模块尺寸(the-correct-way-to-import-lodash-libraries-a-benchmark)。