lodash, _.find, v3 -> v4 巨坑一个
发布于 12 小时前 作者 magicdawn 159 次浏览 来自 分享

_.find in [email protected]

在3.x 版本里是

const arr = [
  { id:1 , name: ''foo },
  { id: 2, name: 'bar' }
];

const o = _.find(arr, 'id', 1);
console.log(o.name); // foo

_.find in [email protected]

在4.x 版本里是

const arr = [
  { id:1 , name: ''foo },
  { id: 2, name: 'bar' }
];

const o = _.find(arr, ['id', 1]);
console.log(o.name); // foo

conclusion

就是说你不修改代码,直接升级v4的话,之前 _.find(arr, 'id', 1) 在v4中会被当作 _.find(arr, 'id') 来处理,最后一个参数被丢弃,即之前是使用 _.matchProperty, 后面同样的代码是 _.property.

  • 没事别乱升级
  • 升级一定要刷 changelog & migration guide

以上。

回到顶部