我正在使用 React 并且我有这样的状态
this.state = {
form: {
name: {required: true, filled: false, value: ''},
age: {required: true, filled: false, value: ''},
dob: {required: false, filled: false, value: ''}
}
}
我想检查是否每个表单字段都已填写,我尝试过这个
const formValid = Object.keys(this.state.form).filter(o=>{
return o.required
}).every(o=> {
return o.filled!==null && o.filled!==''
})
我知道这是错误的,因为 Object.keys 只是返回键,我希望状态是数组,这会让我的生活更轻松,但是如果我不想改变状态的结构怎么办?我该怎么做?
最佳答案
我会将Array#every
与Object.keys
一起使用
使用Object.keys
,您可以通过引用它所属的对象来获取值,例如。 this.state.form[key]
const formValid =
Object.keys(this.state.form)
.every(key => (
this.state.form[key].required &&
this.state.form[key].filled !== null &&
this.state.form[key].filled !== ''
))
如果您需要失败的引用,我会将 every
更改为 filter
关于javascript - 使用每个 es6 对象检查每个属性的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48366609/