是否可以在另一个自定义钩子中使用从一个自定义钩子返回的值?

时间:2020-05-04 20:46:44

标签: reactjs react-hooks

我正在尝试使用自定义钩子在应用程序中的组件之间共享应用程序逻辑。我的应用程序中有一个组件,该组件会更新具有其自己的自定义钩子的某些状态,然后我的应用程序中还有另一个组件,该组件也具有其自己的自定义钩子,但是其中的状态是根据存储在其中的状态变化来计算的第一个自定义钩子。我想发生的是,当在第一个自定义挂钩中更新状态时,我希望在第二个自定义挂钩中触发一个useEffect挂钩,以计算第二个组件的新状态。我意识到在键入此内容时可能会感到困惑,因此我创建了一个准系统示例。

CodeSandbox

codesandbox包含我正在尝试做的准系统版本。我想发生的是,当我单击该沙箱中的“单击我”按钮时,ComponentTwo.js中的计数器应该增加。我是React钩子API的新手,所以我很可能只是不了解它们的工作方式。

1 个答案:

答案 0 :(得分:0)

每次调用useHookOne()时,都会创建一个新的钩子实例。

例如。如果您在console.log("hook1", Math.random());中添加useHookOne,则会看到不同的随机值。

enter image description here

您应该使用钩子useContext或带钩子useSelectoruseDispatch的redux在组件和钩子之间共享数据。

Example with context here