首页 > 解决方案 > 反应:如果json父标签不存在则跳过行

问题描述

我处于以下情况并遇到以下问题。

我正在开发一个从 .json 文件中读取数据的应用程序。我将这些数据存储在行中。现在 .json 文件可能会有所不同,因此我必须涵盖每种情况(有很多情况)。如果 .json 中不存在标签,则不应显示此行。

现在,我可能已经介绍了一个在 JSON 中搜索data.test.persondata.test不存在的案例。

案例可能如下所示:

<TestAntragsdatenAbschnitt
         title={"Test"}
         value={data.test}>


         <TestAntragsdatenRow
                label1={"Person"}
                value1={data.test.person}
         />

</TestAntragsdatenAbschnitt>

这是我的组件。

export default class TestAntragsdatenAbschnitt extends React.Component {

    value;
    title;

    render() {
        this.value = this.props.value;
        this.title = this.props.title;

        return (
            <>
                <h4 className={"antragsdatenAbschnitt"}>
                    {checkAbschnitt(this.title, this.value)}
                </h4>
                {this.value != null &&
                    this.props.children
                }
            </>
        );
    }
}

通过查询this.value != null &&,我试图解决该错误。

我得到的错误:TypeError: Cannot read property 'person' of undefined

我现在的问题是,如果存在 JSON 标签,我如何查询它们,如果存在,则应检查行。如果不是所有带有这个标签的行都应该被跳过。

标签: jsonreactjs

解决方案


Object.keys(data).includes('test') 可以是一种检查 json 对象是否具有该属性的方法。

还有很多其他的方法。你也可以试试:

value1={data.test ? data.test.person : 'error'} 一种安全的空值检查方法


推荐阅读