如果通量存储是保持数据状态的单例,为什么组件在访问存储时使用setState和not setProps?这不是意味着我开始在两个(或更多)地方保存应用程序状态?
Flux / React文档和示例似乎都指向setState作为首选解决方案,但我与一些同事在工作中进行了有趣的对话,并想知道是否有其他人遇到了
编辑:
你可以看到我在这里url说的:
https://github.com/facebook/flux/blob/master/examples/flux-chat/js/components/ThreadSection.react.js
注意ThreadSection是一个子组件,即直接从商店获取数据并将其用作状态。
如果你遵循React“方式”,我会期望状态由商店管理 – 而不是子组件。
我们想到的解决方案是获取顶层组件中的所有商店(作为道具),并根据需要将它们传递给子组件。但是这变得相当丑陋,很快。
我们这样做是因为setProps不适用于子组件
理解你应该有2种组件。有状态的组件和视图组件。
原文链接:https://www.f2er.com/react/302059.html状态组件可以具有3种状态:初始状态,用户输入状态和数据存储状态。
有状态的组件就像你正在组装的“小部件”中的小入口点。对于下游依赖或数据注入,不再有单个应用程序范围的入口点,因为所有这些小部件都有自己的独立生命周期。这就是为什么他们自己需要访问&听商店。
状态组件管理自己的状态,并将其传递给子级通过下游属性渲染。
状态组件通常不直接呈现html DOM元素。它们更像MVC中的控制器,并使用其他转储组件(如MVC中的视图)来实际呈现DOM元素。
Dumber组件就像视图,所以它们只包含渲染DOM元素的逻辑。将它们看作handlebars.js模板,它只接收属性,只是将它们转换为DOM元素,可能带有循环等。它们是无状态渲染器。
希望这回答你的问题。