来自 'react-router-dom' returns 意外对象的 useLocation
useLocation from 'react-router-dom' returns unexpected object
注意:我正在尝试使用 yarn 切换到即插即用。
useLocation 是从 'react-router-dom' 包中导入的。
以前(在 pnp 设置之前)以下行:
const location = useLocation()
总是返回具有下一个结构的位置对象(例如):
{pathname: '/', search: '', hash: '', state: null, key: 'default'}
使用当前的 yarn pnp 设置,在第一次渲染时构建渲染应用程序,有一个具有上述结构的位置对象,但是当尝试更改路径时,有一个具有下一个结构的对象(例如):
{action: 'PUSH', location: {pathname: '/new-path', search: '', hash: '', state: null, key: 'default'}}
为什么会这样,如何解决(总是有一个由相同结构的 useLocation 钩子返回的位置对象)?
已解决。
问题是 history 包升级到了 v.5.x。同时react-router设置为v.^5.2.1。因此,history v.5 与 react-router v.5 不兼容。
看起来 history v.5.x 是为了即将到来的 react-router v.6.
将历史记录降级到 v.4 解决了这个问题。
注意:该问题与切换到 yarn Plug'n'Play 无关。
注意:我正在尝试使用 yarn 切换到即插即用。
useLocation 是从 'react-router-dom' 包中导入的。
以前(在 pnp 设置之前)以下行:
const location = useLocation()
总是返回具有下一个结构的位置对象(例如):
{pathname: '/', search: '', hash: '', state: null, key: 'default'}
使用当前的 yarn pnp 设置,在第一次渲染时构建渲染应用程序,有一个具有上述结构的位置对象,但是当尝试更改路径时,有一个具有下一个结构的对象(例如):
{action: 'PUSH', location: {pathname: '/new-path', search: '', hash: '', state: null, key: 'default'}}
为什么会这样,如何解决(总是有一个由相同结构的 useLocation 钩子返回的位置对象)?
已解决。
问题是 history 包升级到了 v.5.x。同时react-router设置为v.^5.2.1。因此,history v.5 与 react-router v.5 不兼容。
看起来 history v.5.x 是为了即将到来的 react-router v.6.
将历史记录降级到 v.4 解决了这个问题。
注意:该问题与切换到 yarn Plug'n'Play 无关。