我使用axios进行了以下形式的API调用:

Service.get('path/to/api',
    (status, data) => {
        this.setState({ ComponentData: data, loaded: true});
    });

{this.state.loaded && <Component id={this.state.ComponentData.id}
                       prop1={this.state.ComponentData.prop1}
                       prop2={this.state.ComponentData.prop2.propVal} />
}


我遇到的问题是,如果mongoDB中的字段为空/空,则在响应数据中根本不会返回该字段。因此,如果prop2是一个对象或为空,则将引发错误并中断Uncaught TypeError:无法读取未定义的属性'propVal'。

设置道具来处理此问题的最佳方法是什么?这是API方面必须处理的事情吗?

最佳答案

您可以使用以下类型的“ prop2”值检查:

const { id, prop1, prop2 } = this.state.ComponentData;

{this.state.loaded && <Component
   id={id}
   prop1={prop1}
   prop2={prop2 ? prop2.propVal : undefined}
 />
}

09-25 19:23