@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
  }
}
  • Вопрос задан
  • 311 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега React
Потому что меняется сам объект state и исходя из этого props компонента - mapStateToProps же каждый раз новый объект возвращает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы