Javascript 如何在我的React组件的Jest测试中使用阵列原型?
在我的ReactJavascript 如何在我的React组件的Jest测试中使用阵列原型?,javascript,reactjs,jestjs,Javascript,Reactjs,Jestjs,在我的React加载程序组件上运行测试时,我遇到以下错误: TypeError: Cannot read property 'some' of undefined 或 这是我的组件 import-React{ 组成部分 }从"反应",; 从“道具类型”导入道具类型; 从“../ServiceError/ServiceError”导入ServiceError; 从“../Spinner/Spinner”导入微调器; 类加载器扩展组件{ 静态显示名称='Loader'; 静态类型={ 错误:Pr
加载程序
组件上运行测试时,我遇到以下错误:
TypeError: Cannot read property 'some' of undefined
或
这是我的组件
import-React{
组成部分
}从"反应",;
从“道具类型”导入道具类型;
从“../ServiceError/ServiceError”导入ServiceError;
从“../Spinner/Spinner”导入微调器;
类加载器扩展组件{
静态显示名称='Loader';
静态类型={
错误:PropTypes.array,
已加载:PropTypes.bool.isRequired,
noData:PropTypes.object,
渲染:需要PropTypes.func.isRequired
};
获取微调器(){
常数{
加载
}=这是道具;
返回;
}
获取组件(){
常数{
加载,
野田,
提供
}=这是道具;
如果(!loaded&!this.hasError){
返回此.spinner;
}
如果(!loaded&&this.hasError){
返回此.serviceError;
}
//处理API不返回数据的场景
if(已加载&&!this.hasError&&noData){
返回此.serviceError;
}
返回render();
}
获取hasError(){
常数{
错误
}=这是道具;
返回错误.some(el=>el.show==true);
}
获取serviceError(){
常数{
野田
}=这是道具;
if(this.hasError){
返回;
}
返回;
}
render(){
返回此.component;
}
}
导出默认加载程序代码>在某些测试中,您没有向组件提供错误
属性,这意味着错误
有时可能是未定义的
。因此,您无法读取属性
您可以这样做来测试其存在性:
get hasError() {
const {
error
} = this.props;
return Array.isArray(error) && error.some(el => el.show === true);
}
否则,您可以只提供一个默认道具:
static defaultProps = {
error: []
}
您正在传入未定义的
或一个对象来代替错误
static defaultProps = {
error: []
}