首页 > 解决方案 > 如何检查对象的有效性?

问题描述

我有以下对象:

{
     "title": {
         "type": null,
         "message": null
     },
     "first name": {
         "type": null,
         "message": null
     },
     "lastName": {
         "type": null,
         "message": null
     },
}

如何检查其中一个嵌套对象是否具有属性的值error(字符串类型)type

如果其中一个对象的值为errortype我的方法isValid()应该返回布尔值 false。

该对象在 useState 挂钩中使用,如下所示:

const [validateObj, setValidateObj] = useState(sampleObj);

..我想使用这种方法:

const isValid = (): boolean => {
  return // hmm?
};

标签: javascriptreactjstypescriptvalidationobject

解决方案


以下应该做你正在寻找的东西:

const isValid = (): boolean => 
    Object.values(validateObj)             // get the list of values
          .every(o => o.type !== "error"); // check that no type is "error"

每个文档:

every() 方法测试数组中的所有元素是否通过提供的函数实现的测试。它返回一个布尔值。

由于您在 React 组件中使用它,因此您不希望函数在每次渲染时都进行更改,而是仅在更改时validateObj更改。为此,您可能需要查看useCallback挂钩的文档。


推荐阅读