javascript - 如何使用lodash的_.get方法测试多条路径?
问题描述
使用以下 JSON 对象,我如何在lodash 的datapath
一种方法中为每个下拉列表传递“”属性?_.get
JSON
"dropdownList": {
"dropdown1": {
"text":"Disaster",
"datapath":"data.disaster"
},
"dropdown2": {
"text":"Process",
"datapath":"data.process"
},
"dropdown3": {
"text":"Subqueue",
"datapath":"data.subqueue"
}
}
例如,这就是我现在所拥有的,它只包含 dropdown1 的数据路径:
const mapStateToProps = (state, ownProps) => {
let data = _.get(state, ownProps.dropdownList.dropdown1.datapath);
if (data == null) {
data = _.get(state, "common." + ownProps.dropdownList.dropdown1.datapath);
}
let options = _.get(
state,
ownProps.dropdownList.dropdown1.datapathRead,
_.get(state, "common." + ownProps.dropdownList.dropdown1.datapathRead, {
key: "key",
value: "value",
text: "text",
})
);
return { data: data, datapathOptions: options };
};
我怎样才能更好地编写上面的代码,以便我可以在同一个 get 方法中为所有 3 个下拉菜单传递数据路径?
解决方案
使用以下代码将您的 JSON 对象转换为 JSON 数组。
const newData = [...ownProps.dropdownList];
并传递newData
给您的方法,您可以在其中使用任何循环来简单地完成工作
推荐阅读
- angular - NGX 在 .Ts 文件中翻译 - Angular
- node.js - 为什么邮递员不识别“/:id”而是抛出错误?
- javascript - this.props.onPress 不是函数错误 Nativebase 复选框
- android - 我可以依靠firebase作为应用程序android的数据库吗?
- firefox - Windows下SpiderMonkey的构建输出
- c# - 使用mathematica在C#中绘图
- forms - SpeechSynthesizer 如何让声音更人性化
- javascript - 如何引用在 IF 语句中被点击的元素
- android - 即使应用程序没有运行,Android也会在解锁屏幕后自动运行应用程序
- perl - 从“使用”命令中消除用户名