如何在具有超过1个条件的本地反应中进行条件渲染?
以下是我的代码的一部分
索引
.then(response => response.json())
.then((responseData) => {
this.setState({
progressData:responseData,
});
.....
......
render() {
const { progressData }= this.state;
return(
<View style={{flex:1}}>
<HeaderExample />
<View>
{progressData == "1"}
(<View>
<Text style={{fontSize:28,color:"#8470ff",fontWeight: 'bold',paddingTop:20,alignSelf:'center'}}>Pending</Text>
</View>)}
{ progressData == "2" &&
(<View>
<CardSection>
<Text style={{fontSize:28,color:"#8470ff",fontWeight: 'bold',paddingTop:20,alignSelf:'center'}}>InProgress </Text>
<View style={styles.buttonContainer}>
<Button
title="Report"
color="#8470ff"
onPress={() =>onPressReport()}
/>
</View>)}
但是这里仅是一种情况,意味着responseData
仅包含一个字段。但是现在reponseData包含2个数组。每个都有3个对象。因此,如何在此处检查条件渲染?我的responseData看起来像this。我想在每个条件下填充一些UI。这意味着if status = 1 && work_type ="plumber"
然后呈现一些UI。
同样if status = 2 && work_type="electrical" && assigend_to="worker_45"
然后渲染一些ui。那我该怎么办呢?
请帮助
答案 0 :(得分:2)
您可以在新的变量或函数中移动渲染。保持render
功能
render() {
const { progressData }= this.state;
return(
<View style={{flex:1}}>
<HeaderExample />
<View>
{renderProgressData(progressData)}
... //rest of your code
)
}
,并且在您的renderProgressData
函数中,您可以创建一个switch
renderProgressData = (progress) => {
switch(progress) {
case 1:
return (<View>1</View>)
case 2:
return (<View>1</View>)
// ... and so on
default:
return (<View>Default View</View>)
}
}
这样对我来说更干净一点。