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

Как работает mapStateToProps в Redux?

Здравствуйте! Я новичек в Redux. Хочу на тестовом примеру объяснить картину.

Есть редюсер "search" со своим state:
var searchState = {
	search: { value: '', type: 'ordernumber' }
};


Есть компонент Component_A, в который "прокидываются" значение "type" со state:
Component_A = connect(function(state) {
	return {
		type: state.search.type,
	}
})(Component_A);


И есть компонент Component_В внутри которого при каждом нажатии на клавиши обновляется параметр value (dispatch(setValue(newValue)). Понятно, что обновляется весь state в редюсере когда меняется параметр value, НО мне не понятно почему mapStateToProps устроен таким образом, что в компоненте Component_A он постоянно запускает метод render, при учете что поле type не меняется?

Т.е, если я прокидываю изменяющееся поле value в компонент Component_В - ок, делай повторный "render", но если я прокидываю поле type в компонент Component_A - которое по сути неизменно - зачем запускается метод render?
Всем спасибо.
  • Вопрос задан
  • 2089 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
В mapStateToProps есть проверка - "Изменились ли props?": если да - компонент обновляется, если нет - не обновляется.

В вашем случае, вполне возможно, что-то еще вызывает ререндер компонента А... приведите больше кода.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽