2016-02-19 62 views
1

我需要保留各种组件onChange事件的状态更改。因此我将它们保存在它们的状态中,因为直接存储可能会导致重新渲染和损害用户体验,甚至导致一些错误。我现在需要在用户点击某个按钮并将这些状态值压入redux(这一点很简单)时获取所有这些组件的状态,但是如何访问将更新redux状态的操作中的所有组件状态?因为我需要单独访问它们。从REDX动作访问组件状态

+1

“为节省直奔终极版将导致大量重新渲染和损害用户体验,甚至有时会引发错误“。这似乎是要解决的真正问题,因为这绝对不是我的经验。 – rossipedia

回答

4

首先,您应该检查应用程序的整个工作流程,因为将字段保存为REDX应该不会造成重新渲染的巨大开销。

你也应该了解哪些行动(从官方文档的终极版):

操作是从 应用程序发送数据到您的商店的信息的有效载荷。他们是商店唯一的信息来源 。您使用store.dispatch()将它们发送到商店。

因此,动作应包含其内部所有需要的数据。

如果您选择为整个表单启动一个动作,则可以采用此方法(联系表单就是一个很好的示例,因为只有在完全填充时才会发送该表单)。

首先,当你做按钮点击时,你应该调用父component的功能(它包含所有需要的字段并知道如何收集需要的日期)。
父组件的功能可以将所有字段值存储在它自己的state中,或收集子componentsstates
然后,你将能够从这个功能派遣与所需的PARAMS行动

(通常动作调度员从container传递)在官方网站上,你可以找到一个很好的解释:UsageWithReact