Javascript 映射函数内的开关条件语句
我正在映射react native中的对象数组:Javascript 映射函数内的开关条件语句,javascript,react-native,switch-statement,Javascript,React Native,Switch Statement,我正在映射react native中的对象数组: const status_image = [ { image: require("../../assets/claimsImages/Question.png") }, { image: require("../../assets/claimsImages/Approved.png") }
const status_image = [
{
image: require("../../assets/claimsImages/Question.png")
},
{
image: require("../../assets/claimsImages/Approved.png")
},
{
image: require("../../assets/claimsImages/In Process.png")
},
{
image: require("../../assets/claimsImages/Cancelled.png")
}
]
this.state = {
newdata: [],
images: status_image,
}
render(){
var img = this.state.images.map( val => val.image);
const claimData = this.state.newdata.map((val, index) => {
return (
<View key={index} style={{flexDirection: 'row', justifyContent: 'space-between', margin: 15,}}>
<View style={{ borderBottomWidth: 1,borderBottomColor: '#A6ACAF' }}>
<Text>EW</Text>
{val.claim_approval_status.map((status, i) => (
<View style={{marginVertical: 12}}>
<Image
style={styles.stretch}
source={img[i]}
/>
</View>
))}
</View>
<View>
{val.claim_approval_status.map((status, i) => (
<View style={{marginTop: 36}}>
<Text>{status}</Text>
</View>
))}
</View>
</View>
)
});
return (
<View>
{claimData}
</View>
)
}
我怎样才能达到这个结果?非常感谢您的帮助。您可以应用最简单的方法,通过指定对象键作为状态代码,而不是切换大小写,如下所示:
const status_image =
{
question: require("../../assets/claimsImages/question.png"),
approved: require("../../assets/claimsImages/approved.png"),
inprocess: require("../../assets/claimsImages/inprocess.png"),
cancelled: require("../../assets/claimsImages/cancelled.png")
};
一旦你有了回应,你就可以用
<Image
style={styles.stretch}
source={status_image[status]}
/>
您需要确保来自图像的api和密钥的响应应该相同。是的,它是相同的。Approved.png、In-Process.png和response:“claim\u approval\u status”:[“Approved”、“In-Process”]
正如我从您的评论中看到的,这是不一样的,“Approved”和“Approved”都不一样,在我用小写字母写下的问题中,“In-Process”和“inprocess”也不一样。实际情况就是我上面提到的情况。很抱歉出现了问题中的打字错误。正如我所说,它必须是相同的,只需用您得到的响应替换json对象键即可。
<Image
style={styles.stretch}
source={status_image[status]}
/>