请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

useDocumentTitle这个hook有bug

如果有两个页面有使用useDocumentTilte这个hook,先在这两个页面切换,这时title是正确的,但是如果这时再切换到一个没有使用这个hook的页面,那这个页面会是最后一次有用这个hook的title,那个设置也没有用。

正在回答 回答被采纳积分+3

1回答

Nolan 2021-02-27 07:16:28

hi, 你说的有道理,这个确实是这个hook的一个局限,虽然它带有'退出还原'的功能,但是只能'退出还原'到上一个document title. 但是这个并没有什么完美的解决方法,想象一下如果我们不用这个hook,用纯 js 来控制,也是会面临相同的问题的,所以这个问题和这个hook关系不大,而是只要处理document title就会面临的. 我想到有两个方案:

  1. 每个路由都指定document.title

  2. 把hook里这里的代码:

    if (!keepOnUnmount) {
        // 如果不指定依赖,读到的就是旧title
        document.title = oldTitle;
      }

改成 

   if (!keepOnUnmount) {
        // 注意这里变成了defaultTitle,也就是默认标题
        document.title = defaultTitle;
      }

这个供你在实际使用的时候参考

0 回复 有任何疑惑可以回复我~
  • 老师,react-router不是能直接设置各个路由页面的title吗,直接放在router里不会比较方便吗
    回复 有任何疑惑可以回复我~ 2021-06-29 21:32:21
  • react-router可以做这件事吗,这个我还真不知道
    回复 有任何疑惑可以回复我~ 2021-06-30 07:21:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信