如何在React应用程序中检查状态是否没有空值



这是应用程序的状态。如果状态中存在非零、非空和非空数组,Validate函数应返回true。。。

const [state, setState] = useState({
priceType: 0,
recurrenceType: 0,
start_date: '',
end_date: '',
minCapacity: 0,
maxCapacity: 0,
price: 0,
min: 0,
max: 0,
days: []
});

,我正在尝试这种方式,但没有给出正确的结果

const validate=Object.values(state).every((item)=>(item===0 && item==='' && item===[]))

任何建议。。。。

提前感谢

标准等式(=====(不适用于对象(和数组(:

console.log([] === []) // false
console.log({} === {}) // false

此外,您不能使用&&,因为在逻辑上和通常情况下,item不可能同时是0、空字符串和空数组(有一些技巧可以做到这一点,但它们不适合这个问题(。

为了确保没有空值,请使用Array.some()检查它是否至少有一个为空,并否定结果。要确保全部为空,请使用Array.every()

要检查数组是否为空,请检查它的length不是0(这也适用于字符串(。所以你可以只检查长度,如果返回未定义,检查它是否是0:

const state = {
priceType: 0,
recurrenceType: 0,
start_date: '',
end_date: '',
minCapacity: 0,
maxCapacity: 0,
price: 0,
min: 0,
max: 0,
days: []
};
const validate = !Object.values(state)
.some(item => item === 0 || item.length === 0);

console.log(validate);

相关内容

最新更新