【发布时间】:2016-12-06 17:45:52
【问题描述】:
我正在为我的应用程序使用带有 react 和 typescript 的 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 的项目,那么只有这个项目将被重新渲染?
【问题讨论】:
-
您的评论现在变得相关,但问题只是关于元素是否全部重新渲染。
标签: reactjs redux react-redux