我正在为我的应用程序使用redux和react和typingcript。我正在使用在我的应用程序的不同位置使用的很多项目。我的状态是这样的:避免使用react-redux重新呈现大量项目列表
{
items: {42: {}, 53: {}, ... }, //A large dictionary of items
itemPage1: {
itemsId: [ 42, 34, 4 ],
...
},
itemPage2: { ...
},
...
}
用户可以修改调度一些行动items
的某些属性。发生这种情况时,我需要重新绘制每个页面中已修改的组件。问题是我的物品非常大,我无法在每次小修改时重新绘制所有物品。我不知道是该方法是有效的:
- 我有一个拳头组件
<ItemPage1>
它连接到商店买所有存储在树的状态itemPage1
例如下物品清单ID:itemsId
。 - 里面
<ItemPage1>
,我圈在itemsId
属性生成多个FilterItem
组件:itemsId.map(itemId => return <FilterItem id=itemId>);
最后每个
Item
使用ownProps
得到国家的正确部分连接:const mapStateToItemProps = (state, ownProps) => { return { item: state.items[ownProps.id], } } const mapDispatchToItemProps = (dispatch, ownProps) => { return null; } const FilterItem = connect( mapStateToItemProps, mapDispatchToItemProps )(Item)
灿你确认或反驳,如果我更新ID 42的项目,那么只有这个项目将被重新渲染?
也许它很适合你http://stackoverflow.com/questions/38493521/whats-the-best-way-to-deal-with-a-normalized-response/38499471#38499471 –
你的评论现在有相关性,但问题是关于所有元素都被重新渲染或不是。 – user3091275