巩固——React中如何使用判断?

if/else逻辑很难用HTML标签来表达。直接在JSX中加入if语句会渲染出无效的JavaScript:

<div className={if(true){ 'isActive' }}> ... </div>

上面的写法是错误的

按照自己使用场景,挑选合适的方法:

  1. 使用三目运算符
  2. 使用函数
  3. 使用逻辑运算符

1、三目运算符

return <p>Hello, {this.props.name ? this.props.name : "World"}</p>;

上面的表达式中,如果需要加标签可以写成这样:

return <p>Hello, {this.props.name ? <span>this.props.name<span> : <span>World</span>}</p>;

2、使用函数

将逻辑信息全部封装到函数中,在需要的时候调用:

function getName(){ //判断封装在函数中
   if(this.props.name){
      return this.props.name
   }else{
      return "World"
   }
}
var name = getName() //调用
return <p>Hello,{name}</p>

或者:

function getName(){ //判断封装在函数中
   if(this.props.name){
      return this.props.name
   }else{
      return "World"
   }
}
return <p>Hello,{getName()}</p> //调用

3、使用逻辑与(&&)运算符

return <p>Hello,{this.props.name && "World"}</p>

解释: 因为在 JavaScript 中,true && expression 总是会返回 expression, 而 false && expression 总是会返回 false。
意思就是,如果条件是 true,&& 右侧的元素就会被渲染,如果是 false,React 会忽略并跳过它。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值