You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中调用lodash/fp的get方法,如何正确使用默认值?

解决lodash/fp中_.get默认值不生效的问题

嘿,我完全懂你现在的困惑!lodash/fp 和普通版 lodash 在API设计上有个核心差异——它是完全柯里化的,而且采用了「数据最后(data-last)」的参数顺序,这就是你传第三个参数没起作用的关键原因。

先搞清楚两者的区别:

  • 普通lodash的_.get参数顺序是:_.get(对象, 路径, 默认值)
  • 但lodash/fp的_.get是柯里化函数,参数顺序变成了:_.get(路径, [默认值])(对象)

你之前写的_.get("email", profile.profile, "test")之所以无效,是因为fp版的_.get在接收到第二个参数(也就是你的profile.profile对象)时,就直接执行了取值操作,第三个参数根本没被识别成默认值——它只把前两个参数当成「路径」和「对象」,自然就忽略了第三个。

正确的写法示例:

把你的代码改成下面这样,默认值就会正常生效了:

import _ from "lodash/fp"

// 方式1:一次性柯里化调用
console.log("first:", _.get("email", "test")(profile.profile))

// 方式2:拆分写法(更符合函数式风格,也方便复用)
const getEmailWithFallback = _.get("email", "test")
console.log("first:", getEmailWithFallback(profile.profile))

// 原来的第二种判断写法可以直接替换成上面的方式,不用重复调用_.get啦

额外小提示:

lodash/fp的所有函数都是「数据最后」的设计,这样做是为了更好地配合函数组合(比如_.flow、_.compose)使用,如果你习惯了普通lodash的参数顺序,刚开始用fp版确实容易踩这个坑,下次遇到类似问题先留意下参数顺序哦~

内容的提问来源于stack exchange,提问作者WilliamKF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:16:48