如何调用lodash / fp get并使用默认值?

时间:2018-03-30 18:05:32

标签: javascript reactjs lodash

我使用lodash / fp反应并且是新的反应。 documentation for _.get()表示您可以传递默认值:

  

如果未定义解析值,则使用defaultValue。

但是,在签名中没有显示defaultValue并将其作为第三个参数传递不起作用,它将被忽略:

import _ from "lodash/fp"

console.log("first:", _.get("email", profile.profile, "test"))
console.log("second:", _.get("email", profile.profile) ? _.get("email", profile.profile) : "test")
console.log("third:", profile.profile.email)

我进入控制台:

app.js:251 first: undefined
app.js:252 second: test
app.js:253 Uncaught TypeError: Cannot read property 'email' of undefined

由于未定义,因为"第三个"记录,为什么第一个给我空字符串而不是undefined?

请参阅related discussion

如何调用lodash fp并使用默认值?这是getOr的用途吗?我试过getOr并没有获得默认值。

2 个答案:

答案 0 :(得分:4)

在您链接的文档中,如您所见,_.get的第一个参数是对象本身,而不是字符串。如果您的主对象是profile,那么它应该是第一个参数,第二个参数应该是您想要的路径的字符串。

_.get(profile, 'profile.email')指的是profile.profile.email

/fp_.get from lodash/fp doesn’t use defaultValue中,解决方法是使用getOr,这对我来说很好用:

https://codesandbox.io/s/vp2opyjkl

答案 1 :(得分:1)

使用_.getOr(defaultValue, path, object)

来源: