React - 当用户离开页面时重置文档标题

问题描述 投票:0回答:1

我面临一个问题,我希望有人知道如何克服它。

根据我们的 index.html 文件,我们所有网站的页面都有一个默认标题:

<html lang="en">
  <head>
    <title>My Page Title</title>
  </head>
  ...
</html>

这意味着所有选项卡都会根据索引文件显示页面标题。

在网站的一个页面上,我想根据页面加载返回的信息覆盖标题。

例如:

useEffect(() => {
  const displayTitle = loadTitle();
  document.title = displayTitle;
  }, []);

这完全按照我想要的方式工作,当选项卡加载时,选项卡标题会更新。

然而,问题是当用户单击链接离开该页面时。尽管已在该选项卡中加载了另一个页面,但选项卡标题仍保留为已加载的值。选项卡标题显示为加载的值,直到页面硬刷新。

有什么方法可以让我通过加载设置页面的文档标题,如上图所示,但一旦导航离开,使其返回到默认值?

javascript html reactjs
1个回答
0
投票

useEffect
可以给出一个返回值,该返回值应采用函数的形式,当组件(或具体是钩子)卸载时将调用该函数。

您可以使用这个:

useEffect(() => {
  const displayTitle = loadTitle();
  document.title = displayTitle;

  return () => document.title = ""; // However you'd like to reset the title
}, []);

请参阅 useEffect 文档

© www.soinside.com 2019 - 2024. All rights reserved.