@embiid

Как inline изменять фон div в ReactJS?

Нужно для каждого компонента изменять цвета заднего фона, который зависит от главной палитры цветов картинки.
К примеру, есть уже такой компонент:
<Hero   heroImg  = {require('../images/heroes/flash.jpg')}
             heroName = "Flash"
             heroDesc = "Three men have held the title of 'The Fastest Man Alive' -- Jay Garrick, Barry Allen, and Wally West -- each of them redefined the word 'hero.'"/>


А вот, как я это делал в простой нтмл-разметке, просто inline:
<div class="hero" style="background:#d39340">
   <img src="images/heroes/flash.jpg"/>
   <div class="hero-desc">
       <h1>Flash</a>
       <h3>Three men have held the title of "The Fastest Man Alive" -- Jay Garrick, Barry Allen, and Wally West -- each of them redefined the word "hero."</a>
   </div>
</div>


Как можно такое же сделать в ReactJS?
  • Вопрос задан
  • 1858 просмотров
Решения вопроса 1
GreyCrew
@GreyCrew
Full-stack developer
Допустим у вас есть массив цветов (нет не те, которые цветут)
const colors = [#000, #333, #555 , #etc...]
Берем компонент и в нем делаем цикл по этим цветам, в которых передаем параметром один из цветов.
class BackgroundSwitcher extends React.Component {
  render() {
    return (
      <>
        {colors.map(color => <Hero background={color} />)}
      </>
    );
  }
}

Теперь в компоненте Hero берем и вставляем цвет

const Hero = (props) => <div className="hero" style={{background: props.background}}>
   <img src="images/heroes/flash.jpg"/>
   <div className="hero-desc">
       <h1>Flash</a>
       <h3>Three men have held the title of "The Fastest Man Alive" -- Jay Garrick, Barry Allen, and Wally West -- each of them redefined the word "hero."</a>
   </div>
</div>


Конечно это все в вакууме, но надеюсь понятно, как передавать параметры.

Итого мы будем иметь несколько элементов с разными фонами.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dasslier
FrontEnd Developer
А по какой причине цвет нужно изменять именно инлайн?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы