javascript - map 函数中的 Switch 条件语句

标签 javascript react-native switch-statement

我在 react-native 中映射对象数组:

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>
        )

    }

我想要实现的是图像应该根据状态值进行映射,即如果我的 val.claim_approval_status 等于“question”,那么图像“Question.png”应该呈现在在那个状态面前。如果 val.claim_approval_status 等于“approved”,则图像为“Approved.png”。

所有这些状态值都与图像一起映射到一个表中,只是图像需要根据它们的状态值显示。

我也尝试过遵循 switch case 方法,但在实现时感到困惑。

componentDidMount(){
    this.state.newdata.map((x, i) => {
                x.claim_approval_status.map((y, i) => {
                    let status = y;
                    console.log(status) //this gives four status values 
                                        'question, approved, inprocess, 
                                         cancelled'
                });

           });

    var status_values = this.state.images.map((val, i) =>
      {
       switch (i) {
        case 1:
          // something to append that image in status data mapping
          break;
        case 2:
           // something to append that image in status data mapping
          break;
        case 3:
           // something to append that image in status data mapping
          break;
      }
     }
      // ...
    );
}

我怎样才能达到这个结果?任何帮助表示赞赏。

最佳答案

除了 switch case,您可以应用最简单的方法,通过将对象键指定为状态代码,如下所示:

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]}
/>

关于javascript - map 函数中的 Switch 条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57283582/

相关文章:

javascript - 如何在 JavaScript 中设置浏览器特定的 css?

按 ENTER 时提交表单的 JavaScript

javascript - 点击链接查看图标(例如眼睛图标)

node.js - [未处理的 promise 拒绝: SyntaxError: Unexpected token i in JSON at position 7]

ios - 从 native 代码调用 JavaScript 函数

swift - 如何在 UIImagePickerController MediaType 上使用 switch 语句?

javascript - Jquery 显示/隐藏 div onclick 单选按钮 - 根本不起作用

ios - 如何以编程方式更改 XCode 项目的设备目标?

ios - 预期返回“UITableViewCell”的函数中缺少返回值

C:switch语句中的exit case