我在React项目中发现pick
这样导入,并决定测试它是如何工作的:
import { pick } from 'lodash/fp';
let obj = { 'a': 1, 'b': '2', 'c': 3 };
let result = pick(obj, ['a', 'c']);
console.log(result); // => {}
然后使用require测试它并获得预期的输出。
const _ = require('lodash')
let object = { 'a': 1, 'b': '2', 'c': 3 };
let result = _.pick(object, ['a', 'c']);
console.log(result); // => { 'a': 1, 'c': 3 }
为什么在两种情况下都不会以相同的方式工作?
答案 0 :(得分:2)
这与导入无关。在您的第一个示例中,您使用的是lodash/fp,而不是lodash。在你的第二个例子中,你正在使用lodash。
如果你想要来自lodash的pick
:
import { pick } from 'lodash';
证明:如果我们在两者上使用旧式require
,我们仍会得到不同的结果:
var pick1 = require('lodash/fp').pick;
var pick2 = require('lodash').pick;
var obj = { 'a': 1, 'b': '2', 'c': 3 };
var result = pick1(obj, ['a', 'c']);
console.log(result); // => {}
result = pick2(obj, ['a', 'c']);
console.log(result); // => {a: 1, c: 3}
答案 1 :(得分:-2)
我认为你导入的方式是错误的。像这样导入
import pick from 'lodash/pick';