我使用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}
/>
}