猿问

React:useEffect 不能保证在组件渲染之前运行吗?

我正在尝试Gatsby.js根据我所在的 url 路径更新 中的某些组件。

useEffect()用来确保组件仅在location.pathname(域之后的 url 部分)更改时更新。

这是代码: https //codesandbox.io/s/gatsbystarterdefault-290qv

出于某种原因,useEffect没有使用locationprop的更新值(传递给header组件,组件依次包装每个页面)。

要重现,请转到上面的CodeSandbox并:

  1. 单击第 2 页,然后再次返回第 1 页

  2. 请参阅控制台语句,isHome when re-rendering Headertruewhile、isHome at NavItemLinkisfalse

知道为什么useEffect没有获得 的最新值location吗?


白猪掌柜的
浏览 511回答 2
2回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答