Reactjs 在React+下的列表中维护重点项目;通量结构
我有一个项目列表,还有一个Reactjs 在React+下的列表中维护重点项目;通量结构,reactjs,reactjs-flux,Reactjs,Reactjs Flux,我有一个项目列表,还有一个div,用于显示项目的详细信息。比如说, -------------------------------------------- | Items List | Selected Item Detail | -------------------------------------------- | Item A | Item C is selected | | Item B | Item C is a cool
div
,用于显示项目的详细信息。比如说,
--------------------------------------------
| Items List | Selected Item Detail |
--------------------------------------------
| Item A | Item C is selected |
| Item B | Item C is a cool |
| Item C* | |
| Item D | |
--------------------------------------------
我的组件是:
- AppContainer
- Item List
- Item
- Selected Item Detail
AppContainer具有以下统计信息
allItems
selectedItemId
selectedItemId
(一个整数),并在将所选项目传递给所选项目详细信息时通过id找到相应的项目selectedItem
(一个对象)作为状态,并直接将其传递给所选项目详细信息selectedItem
或selectedItemId
保存在Flux的商店中吗?(假设在应用程序中使用Flux后,我将allItems
保存在存储中。)谢谢。正如您的问题所表明的,实现同一件事有多种方法,因此我认为这不是实现是否正确的问题,而是哪个实现最有意义的问题 我是否应该在AppContainer中维护selectedItemId(一个整数),以及 将所选项目传递给时,通过id查找相应的项目 所选项目详细信息?或者我应该保留selectedItem(对象)作为 状态,并将其直接传递给所选项目详细信息 我认为,一般来说,最好尽可能保持状态的紧凑性,并根据实际需要的其他数据导出数据。还有一个旧的标准是“不要重复你自己”。因为所选项目可以从所有项目和索引的集合中派生出来,所以我会存储索引,而不是项目的额外副本 我应该将selectedItem或selectedItem保存在Flux的商店中吗? (假设我在使用Flux后将Allitem保存在商店中 应用程序。)
出于与上述相同的原因,我将存储ID而不是项目的副本。谢谢您的回复。对于第二个问题,我的观点实际上是“如果我保存ID,那么我应该将其保存在存储区还是组件自己的状态?”似乎在使用flux时通常不鼓励使用组件状态,但也有一些例外情况,比如表单输入,将其范围保持在组件上是有意义的。这基本上是一个问题,它是否代表“应用程序状态”,也就是说,除了它起源的组件之外,这个状态位是否与其他组件潜在相关?在本例中是这样的,因为您正在Item或ItemList中选择ID,但SelectedItemDetail使用它,所以我会将它保存在存储中。