재검색으로 인해 구성 요소의 렌더링이 어떻게 감소되는지 실제로 알지 못합니다. 이것은 내가 재 선택하지 않고 가지고있는 것입니다 :재 선택이 구성 요소의 렌더링에 미치는 영향
const getListOfSomething = (state) => (
state.first.list[state.second.activeRecord]
);
const mapStateToProps = (state, ownProps) => {
console.log(state.first.list, state.second.activeRecord);
return {
...ownProps,
listOfSomething: getListOfSomething(state)
}
};
그것은 어떤 값에 기초한 어떤 목록의 요소를 합성합니다. 상태가 변경 될 때마다 아무것도이라고 렌더링, 그래서 예를 들어 내 console.log
출력 :
{}, ""
{}, ""
{}, ""
{}, "1"
{"filled", "1"}
뭔가가 가게의 다른 부분에서 진행되기 때문이다. 따라서 구성 요소는 5 번, 2 번 중복 렌더링됩니다. 제
{}, ""
{}, "1"
{"filled", "1"}
가 : 제 1 선택기 여기
const getList = state => state.first.list;
const getActiveRecord = state => state.second.activeRecord;
const listOfSomething = (list, activeRecord) => {
console.log(list, activeRecord);
return list[activeRecord];
}
const getListOfSomething = createSelector(getList, getActiveRecord, listOfSomething);
const mapStateToProps = (state, ownProps) => {
console.log(state.first.list, state.second.activeRecord);
return {
...ownProps,
listOfSomething: getListOfSomething(state)
}
};
console.log
출력 :
{}, ""
{}, ""
{}, ""
{}, "1"
{"filled", "1"}
및 요소가 올바르게 렌더링 - 3 회
그러나 재 선택하여!
왜 그렇습니까? 구성 요소가 3 번만 렌더링되는 이유는 무엇입니까? 여기에 무슨 일이 벌어지고 있니?