我正在尝试显示JSON响应中可能存在的一些值。如果它们不存在,则应将它们设置为0.
我的switch语句看起来像我的组件打字稿里面看起来像:
<View>
<MyInput onPress={() => this.setState({showField: !this.state.showField})} />
{this.state.showField && <OtherField />}
</View>
我的课程ts文件如下:
this.failures = obj.failures;
this.subsystemFailure = new SubsystemFailure();
for(let i=0;i<this.failures.length; i++){
switch(this.failures[i].appName) {
case "a":
this.subsystemFailure.a = this.failures.appFailures;
break;
case "b":
this.subsystemFailure.b = this.failures.appFailures;
break;
case "c":
this.subsystemFailure.c = this.failures.appFailures;
break;
case "d":
this.subsystemFailure.d = this.failures.appFailures;
break;
case "e":
this.subsystemFailure.e = this.failures.appFailures;
break;
case "f":
this.subsystemFailure.f = this.failures.appFailures;
break;
case "g":
this.subsystemFailure.g = this.failures.appFailures;
break;
case "h":
this.subsystemFailure.h = this.failures.appFailures;
break;
}
}
我正在尝试在视图中显示数据,如果没有值,if将显示为零:
export class SubsystemFailure {
a: number;
b: number;
c: number;
d: number;
e: number;
f: number;
g: number;
h: number;
constructor(){
this.a = 0;
this.b = 0;
this.c = 0;
this.d = 0;
this.e = 0;
this.f = 0;
this.g = 0;
this.h = 0;
}
}
目前,subsystemFailure.a(它是第一个)变量将以未定义的形式返回。有人能指出我正确的方向吗?
答案 0 :(得分:0)
所以我最终重构了代码:
this.subsystemFailure = new SubsystemFailure();
if(this.failureFlag) {
for (let app of json.failures) {
this.subsystemFailure[app.appName] = app.appNoOfFailures || 0;
}
}
这不是switch语句,而是迭代响应并指定与appName
关联的值,如果响应中没有appName
,则指定值0。