这是在写订单页面时遇到的坑。(if不能用)
当时需要判断订单状态,所以用了三元运算
当时我把map的return给包住了,这样会报出找不到item的错误
//
{this.state.list.map((item, i) => {
{
item.state==0
?
<View>
return(
<View>
<View className='flex-wrp view-order-column' style='flex-direction:column;' for={i} key={i}>
<View className='at-row margin-top10 order-form-number'>
<View>订单编号:</View>
<View>{item.code}</View>
</View>
<AtAccordion
open={this.state.open[i]}
onClick={this.handleClick.bind(this,i)}
title='具体课程'
>
{item.purchased.map((items,i) => {
return (
<View >
<AtList hasBorder={false} for={i} key={i}>
<AtListItem
title={items.product_name}
extraText={items.shop_name}
/>
</AtList>
</View>
)})}
</AtAccordion>
<View className='at-col'><AtTag type='primary'className='rigthpanyi tag-color-FuKuan'>待付款</AtTag></View>
<View className='fone-one1 margin-top10 at-row'>
<View>实付金额:</View>
<View>{item.total}</View>
</View>
<View className='fone-one1 margin-top10 at-row'>
<View>时间:</View>
<View>{item.created_at}</View>
</View>
<AtDivider height="40" />
</View>
</View>
)
</View>
:
null
}
})}
正确用法↓
return(
<View>
<View className='flex-wrp view-order-column' style='flex-direction:column;' for={i} key={i}>
{
item.state==0
?
<View>
<View className='at-row margin-top10 order-form-number'>
<View>订单编号:</View>
<View>{item.code}</View>
</View>
<AtAccordion
open={this.state.open[i]}
onClick={this.handleClick.bind(this,i)}
title='具体课程'
>
{item.purchased.map((items,i) => {
return (
<View >
<AtList hasBorder={false} for={i} key={i}>
<AtListItem
title={items.product_name}
extraText={items.shop_name}
/>
</AtList>
</View>
)})}
</AtAccordion>
<View className='at-col'><AtTag type='primary'className='rigthpanyi tag-color-FuKuan'>待付款</AtTag></View>
<View className='fone-one1 margin-top10 at-row'>
<View>实付金额:</View>
<View>{item.total}</View>
</View>
<View className='fone-one1 margin-top10 at-row'>
<View>时间:</View>
<View>{item.created_at}</View>
</View>
<AtDivider height="40" />
</View>
:
null
}
</View>
</View>
)
})}