我遵循了本指南https://reactrouter.com/en/main/guides/ssr#without-a-data-router
我正在服务器渲染这样的应用程序
<StaticRouter location={req.url}>
<Routes>
// ...
</Routes>
</StaticRouter>
我的路线之一包含此代码
import React from 'react'
import { useLocation } from 'react-router'
export function SceneButton(props: SceneButtonProps) {
const location = useLocation()
// ...
return <button>Scene</button>
}
当我渲染应用程序时,我收到此错误
useLocation() may be used only in the context of a <Router> component.
如何以浏览器端和服务器端都有效的方式获取此处的位置?
另外,奇怪的是,React Router 文档确实希望我使用 Remix,但我的应用程序很大,我无力重写它。