Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 是否在同一组件的所有实例之间共享状态?_Reactjs - Fatal编程技术网

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

Reactjs 是否在同一组件的所有实例之间共享状态?,reactjs,Reactjs,我有一个工具提示组件,悬停时会显示一个简单的工具提示 当您mouseLeave组件时,将触发setTimeout,当它结束时,工具提示将关闭(setState({open:false})) 现在,我想添加一个行为来反映本机操作系统工具提示之一: 当您mouseleve一个工具提示,但立即mouseEnter另一个工具提示时,上一个工具提示将立即关闭,新的工具提示将打开 为此,我需要在工具提示组件的所有实例之间拥有一个共享状态。我可以使用Redux,但对于一个如此简单的任务来说,这似乎有点过头了(

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

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

现在,我想添加一个行为来反映本机操作系统工具提示之一:

当您
mouseleve
一个工具提示,但立即
mouseEnter
另一个工具提示时,上一个工具提示将立即关闭,新的工具提示将打开

为此,我需要在工具提示组件的所有实例之间拥有一个共享状态。我可以使用Redux,但对于一个如此简单的任务来说,这似乎有点过头了(我需要一个与存储交互并使操作和属性可用的容器)


有更简单的解决方案吗?

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


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

将共享状态移动到所有工具提示的父组件的
状态
,让该父组件定义一个方法
设置任何值,并通过属性将此方法传递给
工具提示
组件。这样,孩子们可以在需要更改状态时调用他们的
setwhich
属性,这实际上是他们父母的属性。

最容易维护的方法是使用flux方法。Redux不是唯一的选择,但我不认为这有什么过分。如果您需要全局状态,请使用专门为其构建的工具。它不是解决方案,此组件将在应用程序中广泛使用。您的方法将使代码难以维护。