У меня есть браузерная игра, которую я создаю с помощью React. У пользователя будут жизни, которые уменьшатся, когда произойдет данное событие. Живые изображения отображаются на плеере с помощью трех потрясающих шрифтов значков сердца. Я использую response-fontawesome.
Получение значков для отображения не является проблемой. Я ищу более понятный способ отображения трех значков сердца, основанных на выключенном состоянии (стараясь не использовать вложенные операторы if или switch, если это возможно).
// initial state
state = { lives: 3 }
// import of FA icon with react-fontawesome
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faHeart } from '@fortawesome/free-solid-svg-icons'
// assigning icon to variable
let hearts = <FontAwesomeIcon icon={faHeart} className="mx-1" />;
// displaying icon
<div className="d-flex panel-content-md">{ hearts }</div>
Когда состояние «жизни» уменьшается,Значок сердца должен быть удален, показывая игроку, что он потерял жизнь. Я обнаружил, что для отображения нескольких значков в переменной 'hearts' необходимо обернуть теги в родительский тег div:
let hearts = (
<div>
<FontAwesomeIcon icon={faHeart} className="mx-1" />
<FontAwesomeIcon icon={faHeart} className="mx-1" />
<FontAwesomeIcon icon={faHeart} className="mx-1" />
</div>
)
Я не нашел чистого решения условного рендеринга, которое просто смотрит на числоэто назначается на «жизни» и обновляет количество отображаемых сердец. У меня такое чувство, что я упускаю из виду очевидное.