为了账号安全,请及时绑定邮箱和手机立即绑定

如何使组件“显示:无”直到用户做出选择?

如何使组件“显示:无”直到用户做出选择?

千巷猫影 2023-12-19 16:43:17
在反应中工作,我试图让我的组件在做出选择之前不显示。做出选择后,我需要设置其他样式,如下所示:<p className={player.weight >= opponent.weight ? "text-green border-green" : "text-danger border-danger"}>{player.weight}</p>在选择完成之前,我不想显示任何内容;截至目前,虽然 player 是 undefined 条件仍然运行,但我得到一个空边框。我可以使用任何快速技巧来检查 player 对象是否为 undefined 并且不渲染任何内容,然后按照我的方式渲染做出选择后您愿意吗?
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

您可以检查player

{player && <p className={player.weight >= opponent.weight ? "text-green border-green" : "text-danger border-danger"}>{player.weight}</p>}

此语法variable && something相当于if(variable){ something }

因此,如果 variable 是一个 falsy 值,例如 nullundefined、< /span>不执行。0,则something

它非常适合 React 中的条件渲染语法


查看完整回答
反对 回复 2023-12-19
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

你可以使用这样的东西


<div style={{ display: myVar ? 'block' : 'none' }}>

<p>your data ...</p>

</div>


查看完整回答
反对 回复 2023-12-19
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

在 React 中,有一个 render 方法,如果你不希望它渲染,你可以返回 null。


例如


render() {

  const { player } = this.props;


  if (!player) return null;


  return (

    <p className={

      player.weight >= opponent.weight ? 

        "text-green border-green" : "text-danger border-danger"}>

      {player.weight}

    </p>

  )

}

或者你可以做第一个海报所做的事情


{player && <p className={player.weight >= opponent.weight ? "text-green border-green" : "text-danger border-danger"}>{player.weight}</p>}

如果 player 为假(null、false、未定义),则 && 后面的部分将被删除。条件不会执行,因为第一部分已经是假的。


一个&& b - 此处如果 a 不是 b 将不会执行,因为两者都给出相同的 false 响应。在下面的情况下,如果 a = false,那么 B 是什么并不重要,因为表达式始终为 false。因此,react不会执行html部分(相当于b)


false && true

false && false


查看完整回答
反对 回复 2023-12-19
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信