Задать вопрос
@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 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
В mapStateToProps есть проверка - "Изменились ли props?": если да - компонент обновляется, если нет - не обновляется.

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

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

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