当父级运行setState

时间:2019-02-13 13:12:33

标签: javascript reactjs redux

大家好,这是问题所在。

我们有一个启用了某些过滤功能的网格组件。应用过滤时,如果存在某个回调属性,则将过滤后的数据作为参数调用它。

问题是这样的。如果所述数据网格由父组件包装,并且父组件将过滤后的数据保存在其状态下,则将导致父组件以及数据网格重新呈现。但是,当数据网格渲染时,它运行的是过滤逻辑,这将导致回调(即setState()调用)运行。

因此,为避免循环,我向父组件类引入了一个变量并将数据保存在那里,但对我来说似乎不太好。

另一个选项是redux,只需添加一个新操作并在运行过滤时将其分派即可。

还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

由于您还在询问其他想法,因此我建议您使用React挂钩。它们允许更精细的控制,例如多个状态,reducersmemoized callbacks,效果only called when inputs change等。