在同一组件的所有实例之间共享状态?

时间:2016-06-10 11:42:10

标签: reactjs

我有一个工具提示组件,当悬停时显示一个简单的工具提示。

当您mouseLeave组件时,setTimeout会触发,当它结束时,工具提示会关闭(setState({ open: false }))。

现在我想添加一个行为以反映其中一个本机操作系统工具提示:

当您mouseLeave一个工具提示,但即时mouseEnter一个不同的工具提示时,之前的工具提示会立即关闭,新的工具提示会被打开。

为此,我需要在Tooltip组件的所有实例之间建立共享状态。我可以使用Redux,但对于一个如此简单的任务来说似乎有点过分(我需要一个与商店交互并生成动作和属性的容器)。

是否有更简单的解决方案?

2 个答案:

答案 0 :(得分:0)

在ReactComponent之间共享信息的最佳方式是Flux架构。 Redux就是其中之一。

更简单的选择是使用用于存储临时信息的browser native storage:它类似于全局变量,但具有特定的范围和持续时间定义。

答案 1 :(得分:0)

将共享状态移动到所有state的父组件的Tooltip中,让此父级定义方法setWhatever以设置值,并将此方法传递给{{ 1}}组件通过属性。这样,当孩子需要改变状态时,他们可以调用他们的Tooltip属性,这是他们的父母之一。