aro map循环里的if判断

taro 不支持 map 里嵌套if

aro map循环里的if判断_第1张图片

1083235-20181210170134778-431807563.png

官方也给出了解决办法,那就是提取变量或者是用三目运算嵌套的方法

aro map循环里的if判断_第2张图片

 

实践

 {
           this.state.telephone.map((n,index)=>{
             
              return index+1 === jodDate.telephone.length?
              {n}
               : 
               {n}、
            
           })
         }  

当判断条件过多时,最优的解决方案是把循环的内容抽出来做子组件,把index和item,当作参数传递给子组件,在子组件里面使用if

父组件

return (
      
        {this.state.listArr.map((item, index) => {
          return 
          
        })}
      )
  }

子组件

render() {
    let resultDom: any = null;
    if (this.props.propIndex === 2) {
      resultDom = 
        prop is 2 ,item is {this.props.propItem}
      
    }else{
      resultDom = 
        prop is no 2 ,item is {this.props.propItem}
      
    }
    return (
      
        {resultDom}
      
    )
  }


 

你可能感兴趣的:(JavaScript)