[英]Why does my redux container render when unrelated state changes?
我的redux狀態如下所示:
{
entities: {
cars: {
byId: {},
isFetching: true
},
persons: {
byId: {},
isFetching: false
}
}
}
我的人容器:
class PersonPageComponent extends React.PureComponent<
IPersonPageProps & InjectedAuthRouterProps,
{}
> {
render() {
console.log('render´);
return (<p>helllo</p>);
}
}
const mapStateToProps = (state: RootState, ownProps: { title: string }) => ({
list: _.values(state.entities.persons.byId), // personsSelector(state)
});
export const PersonPage = userIsAuthenticated(
connect<IPersonPageProps, {}, {}>(
mapStateToProps
)(PersonPageComponent)
);
當我在entity.cars下的redux狀態發生更改時,為什么我的Person容器會重新渲染? 自“實體”更改以來,是否應該觸發渲染? GET_CARS操作設置entity.cars.isFetching = true。 是否應該導致PersonComponent中的重新渲染?
更新cars
, state.entities.persons
可能是同一對象,但是_.values(state.entities.persons.byId)
每次執行_.values
產生一個新對象_.values
不會緩存/重用其結果,即使輸入保持不變。
由於提供給PureComponent
的prop現在是一個不同的對象(即使具有相同的內容),因此將觸發重新渲染。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.