我有一个工具提示组件,当悬停时显示一个简单的工具提示。
当您mouseLeave
组件时,setTimeout
会触发,当它结束时,工具提示会关闭(setState({ open: false })
)。
现在我想添加一个行为以反映其中一个本机操作系统工具提示:
当您mouseLeave
一个工具提示,但即时mouseEnter
一个不同的工具提示时,之前的工具提示会立即关闭,新的工具提示会被打开。
为此,我需要在Tooltip组件的所有实例之间建立共享状态。我可以使用Redux,但对于一个如此简单的任务来说似乎有点过分(我需要一个与商店交互并生成动作和属性的容器)。
是否有更简单的解决方案?
答案 0 :(得分:0)
在ReactComponent之间共享信息的最佳方式是Flux架构。 Redux就是其中之一。
更简单的选择是使用用于存储临时信息的browser native storage:它类似于全局变量,但具有特定的范围和持续时间定义。
答案 1 :(得分:0)
将共享状态移动到所有state
的父组件的Tooltip
中,让此父级定义方法setWhatever
以设置值,并将此方法传递给{{ 1}}组件通过属性。这样,当孩子需要改变状态时,他们可以调用他们的Tooltip
属性,这是他们的父母之一。