CSS не обновляется на мобильном телефоне - PullRequest
0 голосов
/ 08 сентября 2018

Я создаю диаграмму навыков в компоненте React, где каждый столбец начинается с короткой ширины, а затем расширяется до указанной ширины через 0,5 секунды. Ширина зависит от уровня навыка, определенного в следующем массиве:

const skills = [
  { skillName: 'JavaScript', level: 10, color: 'bca538' },
  { skillName: 'HTML', level: 9, color: 'af4336' },
  { skillName: 'CSS', level: 9, color: '2f81b7' },
]

Диаграмма представлена ​​в следующем коде:

<div className="chart__bars">
  {skills.map((skill, index) => {
    const { skillName, level, color } = skill
    const { scale } = this.state

    return (
      <div
        className={'chart__bars__item'}
        key={skillName}
        style={{
          background: `#${color}`,
          height: `${(100 / skills.length) * (index + 1)}%`,
          width: `${scale ? level * 10 : 30}%`,
          zIndex: skills.length - index,
        }}
      >
        <h4
          style={{
            opacity: `${scale ? 1 : 0}`,
          }}
        >
          {skillName}
        </h4>
      </div>
    )
  })}
</div>

После того, как компонент смонтирован, он вызывает изменение состояния через 0,5 секунды, что должно затем развернуть каждую полосу (логика для этого находится внутри свойства style в приведенном выше коде). Вот начальное состояние:

state = {
  scale: false,
}

И вот где я это изменяю:

componentDidMount() {
  setInterval(() => {
    this.setState({ scale: true })
  }, 500)
}

Отлично работает в браузере, но не на мобильном телефоне. Используя devtools, я вижу, что ширина обновляется, но она не увеличивается. Если я снимаю флажок ширины, а затем снова проверяю его, ширина увеличивается (что должно произойти автоматически).

Рабочий пример есть на моем сайте: https://marcelcruz.io.

Любые мысли приветствуются! Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...