我正在使用lodash / fp做出反应并且是新的反应. documentation for _.get()表示您可以传递默认值:
If the resolved value is undefined, the defaultValue is used in its place.
但是,在签名中没有显示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?
如何调用lodash fp并使用默认值?这是getOr的用途吗?我试过getOr并没有得到默认值.
解决方法:
在您链接的文档中,如您所见,_. get的第一个参数是对象本身,而不是字符串.如果您的主要对象是配置文件,那么它应该是第一个参数,第二个参数应该是您想要的路径的字符串.
_.get(profile,’profile.email’)指的是profile.profile.email
在/ fp,_.get from lodash/fp doesn’t use defaultValue,解决方案是使用getOr,这对我来说很好:
https://codesandbox.io/s/vp2opyjkl