反应,概念上的关注:儿童与(大)父母维持国家

时间:2015-09-14 22:09:22

标签: reactjs

我听说在React中,最好让状态保持尽可能高,而不是让它们出现在儿童身上。这一般是正确的吗?让孩子成为维持自己状态的自我意识的组件似乎对我有意义。有人可以解释这个概念吗?为什么最好让父母有州?

我将举例说明我现在正在做的事情:

我有一个文件上传器,其中有一个文件dropzone,当文件被删除时,它会告诉父文件文件被删除,这反过来又设置了一个包含文件列表的状态,该文件被传递down作为上传队列组件的prop,其中包含多个FileUpload组件(进度条/上传进程)。那些FileUpload组件有自己的进度状态。追踪任何更高的东西似乎没有意义。

也许有人可以更多地了解这种方法。

2 个答案:

答案 0 :(得分:1)

我不知道我是否听过“保持尽可能高的状态”,而是将州保持在父母的子女共享同一州的状态。你怎么做对我来说听起来是对的。

答案 1 :(得分:0)

您正在谈论具有单向数据流的Flux应用程序架构。

我建议您阅读有关Flux的官方文档,并了解有关数据流的图表。基本上,您有一个主要组件,其中包含应用程序的一部分功能,如文件上传器,并且只有此组件通过更新自己的状态从Store接收数据。主要组件通过props将数据传递给子节点。孩子们永远不应该更新他自己的状态,如果你需要更新子组件中的某些东西,你会向商店发出一个动作来更新主要组件的状态。