В React есть метод рендеринга, и вы можете вернуть ноль, если вы не хотите, чтобы он рендерился.
Например,
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, undefined), часть после условия && не будет выполняться, поскольку первая часть уже ложна.
a && b - здесь, если a не равно, b не будет выполняться, поскольку оба дают одинаковый ответ false. В приведенном ниже случае, если a = false, тогда не имеет значения, какой B, поскольку выражение всегда будет ложным. Таким образом, реакция не выполняет часть html (что эквивалентно b)
false && true
false && false