Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在React+下的列表中维护重点项目;通量结构_Reactjs_Reactjs Flux - Fatal编程技术网

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
我的问题来了:实现是否正确

  • 我是否应该在AppContainer中维护
    selectedItemId
    (一个整数),并在将所选项目传递给所选项目详细信息时通过id找到相应的项目
  • 或者我应该保留一个
    selectedItem
    (一个对象)作为状态,并直接将其传递给所选项目详细信息
  • 我应该将
    selectedItem
    selectedItemId
    保存在Flux的商店中吗?(假设在应用程序中使用Flux后,我将
    allItems
    保存在存储中。)

  • 谢谢。

    正如您的问题所表明的,实现同一件事有多种方法,因此我认为这不是实现是否正确的问题,而是哪个实现最有意义的问题

    我是否应该在AppContainer中维护selectedItemId(一个整数),以及 将所选项目传递给时,通过id查找相应的项目 所选项目详细信息?或者我应该保留selectedItem(对象)作为 状态,并将其直接传递给所选项目详细信息

    我认为,一般来说,最好尽可能保持状态的紧凑性,并根据实际需要的其他数据导出数据。还有一个旧的标准是“不要重复你自己”。因为所选项目可以从所有项目和索引的集合中派生出来,所以我会存储索引,而不是项目的额外副本

    我应该将selectedItem或selectedItem保存在Flux的商店中吗? (假设我在使用Flux后将Allitem保存在商店中 应用程序。)


    出于与上述相同的原因,我将存储ID而不是项目的副本。

    谢谢您的回复。对于第二个问题,我的观点实际上是“如果我保存ID,那么我应该将其保存在存储区还是组件自己的状态?”似乎在使用flux时通常不鼓励使用组件状态,但也有一些例外情况,比如表单输入,将其范围保持在组件上是有意义的。这基本上是一个问题,它是否代表“应用程序状态”,也就是说,除了它起源的组件之外,这个状态位是否与其他组件潜在相关?在本例中是这样的,因为您正在Item或ItemList中选择ID,但SelectedItemDetail使用它,所以我会将它保存在存储中。