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

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

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

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