首页 > 解决方案 > 如何从所有组件的 componentDidMount 调用函数

问题描述

我正在构建一个基于 ReactJS 的网站。如果它有所作为,我会使用钩子。

我正在为防伪令牌等编写一些安全代码。我想自动调用一个函数而不逐页实现它。

如何从所有组件的 componentDidMount 中调用函数?它有一个全球性的事件吗?

现在这样做是这样的;但是要遵循所有并实现这一点真的很复杂......

  componentDidMount() {
    token.Get();
  }

标签: reactjsreact-hooks

解决方案


如果您使用 Hooks,则您使用的是函数组件,因此无法访问诸如componentDidMount. 要触发安装和卸载的效果,您必须执行类似的操作

React.useEffect(() => token.Get(), [])

https://reactjs.org/docs/hooks-effect.html#tip-optimizing-performance-by-skipping-effects

要根据您的需要定义全局行为,您可以在根App.js级别实现该行为。您也可以创建一个高阶组件来包装需要此行为的每个组件,但对于一行代码来说似乎有点过分了(https://reactjs.org/docs/higher-order-components.html


推荐阅读