【问题标题】:How useState hook able to re-render its parent function?useState 钩子如何能够重新渲染其父函数?
【发布时间】:2019-08-11 06:30:19
【问题描述】:

任何人都可以帮助我了解功能性 cmp 在状态发生变化时如何重新渲染。

参考下面例如

function App() {
  const [count, updateCount] = useState(0);

  return (
    <div className="App">
      <h1>{count}</h1>
      <button onClick={() => updateCount(count + 1)}>Update</button>
    </div>
  );
}

如果我将它与基于类的反应组件进行比较,那么我们在类中有渲染函数,我相信只要状态或道具发生变化,就必须触发它(必须有生命周期函数链和其中之一将是 this.render())

但是上面的代码结构App是一个函数组件,在App内部我们正在改变状态/计数,如何反应知道在updateCount/setter函数之后,App/(或其父函数)应该被再次调用?我的意思是我们没有将 App 函数的引用传递给 useState。

【问题讨论】:

标签: reactjs react-hooks


【解决方案1】:

您的渲染函数中的代码会根据您的状态做出反应。人们喜欢说 UI 是组件状态的可视化表示。

在Hooks 发布之前,没有办法在函数组件中拥有 React 的内部状态。您可能一直在使用 Redux、MobX 或其他第三方库来管理您的状态,但无法连接到组件的本地状态。

您的渲染函数的行为与它在有状态类组件中的行为完全相同。

【讨论】:

  • 问题是关于 react 如何基于同一功能组件内部的钩子重新渲染/调用功能组件
猜你喜欢
  • 2022-01-24
  • 2020-10-29
  • 1970-01-01
  • 2023-03-25
  • 2020-01-26
  • 1970-01-01
  • 2022-01-17
  • 2021-12-01
  • 2021-04-13
相关资源
最近更新 更多