【发布时间】:2019-07-27 02:54:49
【问题描述】:
我正在测试新的 React Hooks,我遇到了一个我无法修复的行为(也无法理解)。基本上,我有我的功能组件,并在其中设置了一个函数。该函数被传递给渲染的组件,并使用道具从最后渲染的组件中调用它。 太糟糕了,父母的钩子没有相应地更新!
我知道这似乎很难理解,但我已在此处重现错误https://codesandbox.io/s/vvwp33l7o5
如您所见,在 App 组件中,我有 onResize 函数,它应该更新 counter 钩子。这个函数被传递给ResizeObserverContainerHook 组件,当ResizeObseverContainerHook div 被调整大小时,从后者被调用。如您所见,onResize 函数中的width 和height 变量是正确的,但counter 钩子似乎没有更新!事实上,它永远等于1。
我不知道,似乎我无法从组件外部更新钩子(这就像 React 有状态组件中的状态,但至少我可以像在这种情况下传递一个函数,但它没有工作:/)。
知道如何使setCounter 在index.js 中的 12 处有效吗?
【问题讨论】:
标签: javascript reactjs react-hooks