Задать вопрос
@Aleksey100

React почему ререндерится компонент?

Здравствуйте.

Подскажите пожалуйста почему этот компонент рендерится каждый раз при изменении state.users?
state.users обновляется раз в 5 секунд и при каждом его изменении выполняется функция showMessage.
Почему это происходит если в компоненте не используются данные из стэйта?
Если закомментировать users: state.users, то ререндера больше не происходит.

PS: Данные в стэйте изменяются не всегда, а только если юзеры действительно поменялись, я в редьюсере это проверяю. Но компонент все равно рендерится

function Message(props) {
  const showMessage = (text) => {
    console.log(text)
    return <span>{text}</span>
  }
  return (
    <div>
      {showMessage(props.message.Text)}
    </div>
  )
}

function mapStateToProps(state) {
  return {
    users: state.users
  }
}
  • Вопрос задан
  • 321 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега React
Потому что меняется сам объект state и исходя из этого props компонента - mapStateToProps же каждый раз новый объект возвращает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽