javascript - 如何在React Native中进行条件渲染

标签 javascript reactjs react-native jsx conditional-rendering

如何在 React Native 中进行超过 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 个对象。那么我如何在这里检查条件渲染?我的响应数据看起来像 this 。我想在每个条件下填充一些用户界面。这意味着 if status = 1 && work_type ="plumber" 然后渲染一些 UI。 另外 if status = 2 && work_type="electrical"&& assigend_to="worker_45" 然后渲染一些 ui。那么我该怎么做呢?

请帮忙

最佳答案

您可以将渲染移动到新变量或函数中。保持清晰的render函数

 render() {

        const { progressData }= this.state;
      return(
        <View style={{flex:1}}>
        <HeaderExample />
        <View>
        {renderProgressData(progressData)}
        ... //rest of your code
      )
  }

并且在您的renderProgressData函数中,您可以创建一个开关

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

这样对我来说更干净一点。

关于javascript - 如何在React Native中进行条件渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53082565/

相关文章:

javascript - 如何在 JS/React 中下载 mp4 视频?

react-native - react native 链接邮件api支持主题,正文?

ios - 无法连接 native 到本地主机

react-native - 有没有人在 react native 项目中成功使用 azure-storage 进行 blob 存储?

javascript - 如何检测视频文件是否受 HTML5 视频标签支持?

javascript - 如何在保持响应速度的同时将 YouTube 视频居中?

javascript - 通过位于 iframe 内的元素获取父 iframe 元素

javascript - 我如何在 Node JS 中搜索和替换字符串

javascript - react js中如何根据hash排序/隐藏组件的顺序?

javascript - OnMouseDown 在散点图中多次触发