【发布时间】:2019-06-22 03:21:06
【问题描述】:
我一直在使用 React、Redux 和 Normalizr 构建一个相当广泛的应用程序,但一直在为过多的冗余渲染周期而苦苦挣扎,现在我想我可能误解了如何结合 mapStateToProps 和 Normalizr。
在我的mapStateToProps 中,我引用了所有特定的实体类型,然后我可以使用它从其 ID 中获取实体:
function mapStateToProps(state) {
return {
allMilestones: state.account.entities.milestones,
allTasks: state.account.entities.tasks,
}
}
使用上面的mapStateToProps,每当我需要获取实体时,我就可以去(例如)const taskObject = this.props.allTasks[taskId]。快速方便,但我知道这意味着有很多道具被传递——我认为传递引用没什么大不了的,但后来我注意到一切都在重新渲染,一直。
这是否可能是渲染周期数量不合理的罪魁祸首?
如果是这样,我是否可以期望对所有这些情况实施 Reselect 会对性能产生积极影响?
【问题讨论】:
标签: reactjs redux react-redux normalization normalizr