【发布时间】:2021-07-24 05:33:03
【问题描述】:
我有一个嵌套对象:
const refsObject = {
refOne: {
current: {
validate: function()
}
},
refTwo: {
current: {
validate: function()
}
}
};
我需要使用单个方法运行输入字段验证,该方法循环遍历对象的每个嵌套对象并调用验证方法。
到目前为止我所尝试的:
const splitObject = o => Object.keys(o).map(e => ({ [e]: o[e] }));
splitObject.forEach(ref => ref.current && ref.current.validate());
SplitObject 返回一个对象数组,其中包含refsObject 中的所有对象。一旦我在 splitObject 上执行 forEach,它就会变得未定义,因为 ref.current 在嵌套对象键“refOne”内,它是动态的,所以我不能硬编码。任何建议都有帮助!
【问题讨论】:
-
预期结果是什么?
-
forEach 方法不返回任何值,最好是 .map 或 .reduce
-
@OriDrori,我只需要调用包含输入字段参考的每个嵌套对象的当前内部的方法。
-
for (const { current: { validate } } of Object.values(refsObject)) validate();,或者如果你需要this,或者不喜欢解构的方式,for (const v of Object.values(refsObject)) v.current.validate();
标签: javascript arrays reactjs object ecmascript-6