如何在.map函数中使用if条件?

时间:2019-02-15 08:38:13

标签: react-native

您好,我使用过以下条件,但屏幕上没有任何渲染。顺便说一句,领导者数组中有“ MAVI”

renderall() {           
  return this.state.leader.map(alb =>  {
    if(alb.Renk == 'MAVI') { 
        <View style={styles.container} key={counter = counter + 1}> 
          <Text style={[styles.textStyle, {marginLeft:'5%'}]}> {alb.Tescil_No}  </Text>

          <Text style={[styles.textStyle, {marginLeft:'6%'}]}> {alb.GumrukAdi}  </Text>

          <Text style={[styles.textStyle, { marginLeft:'5%'}]}> {alb.ACIKLAMA}   </Text>                                                
        </View>
    }
  });
}                                    

1 个答案:

答案 0 :(得分:2)

您在.map中缺少回报。注意,在if statement内,我正在返回要映射的项目。

renderall() {           
  return this.state.leader.map(alb =>  {
    if(alb.Renk == 'MAVI') {
      return (    
        <View style={styles.container} key={counter = counter + 1}> 
          <Text style={[styles.textStyle, {marginLeft:'5%'}]}> {alb.Tescil_No}  </Text>

          <Text style={[styles.textStyle, {marginLeft:'6%'}]}> {alb.GumrukAdi}  </Text>

          <Text style={[styles.textStyle, { marginLeft:'5%'}]}> {alb.ACIKLAMA}   </Text>                                                
          </View>
      );
    }
  });
}

本文更详细地说明了.map函数的工作原理 https://codeburst.io/learn-understand-javascripts-map-function-ffc059264783

这是一个非常小的示例,显示了如何使用.map函数。注意return语句。

let leaders = ['Tom','Jerry','Mike'];

let mappedLeaders = leaders.map((leader, index) => {
  return `${leader} is number ${index}`; // notice that I am returning here
})

console.log(mappedLeaders)

下面是一个使用.mapif statement的示例。请注意,我们将为undefined中的第一项得到mappedLeaders,因为我们不会为第一项返回任何内容,因为 Tom 因为他的名字也太长而被排除简短。

let leaders = ['Tom','Jerry','Mike'];

let mappedLeaders = leaders.map((leader, index) => {
  if (leader.length > 3) {
    return `${leader} is number ${index}`; // notice that I am returning here
  }
});

console.log(mappedLeaders)