我听说在React中,最好让状态保持尽可能高,而不是让它们出现在儿童身上。这一般是正确的吗?让孩子成为维持自己状态的自我意识的组件似乎对我有意义。有人可以解释这个概念吗?为什么最好让父母有州?
我将举例说明我现在正在做的事情:
我有一个文件上传器,其中有一个文件dropzone,当文件被删除时,它会告诉父文件文件被删除,这反过来又设置了一个包含文件列表的状态,该文件被传递down作为上传队列组件的prop,其中包含多个FileUpload
组件(进度条/上传进程)。那些FileUpload
组件有自己的进度状态。追踪任何更高的东西似乎没有意义。
也许有人可以更多地了解这种方法。
答案 0 :(得分:1)
我不知道我是否听过“保持尽可能高的状态”,而是将州保持在父母的子女共享同一州的状态。你怎么做对我来说听起来是对的。
答案 1 :(得分:0)
您正在谈论具有单向数据流的Flux应用程序架构。
我建议您阅读有关Flux的官方文档,并了解有关数据流的图表。基本上,您有一个主要组件,其中包含应用程序的一部分功能,如文件上传器,并且只有此组件通过更新自己的状态从Store接收数据。主要组件通过props将数据传递给子节点。孩子们永远不应该更新他自己的状态,如果你需要更新子组件中的某些东西,你会向商店发出一个动作来更新主要组件的状态。