代码之家  ›  专栏  ›  技术社区  ›  crevulus

有没有办法将react-router-dom-v5-compat中的CompatRouter与数据API/createBrowserRouter一起使用?

  •  0
  • crevulus  · 技术社区  · 1 年前

    我正在尝试使用v5 compat的新useMatches钩子 lib 。根据迁移 guide ,实现应该如此简单:

            import {
              CompatRouter,
            } from "react-router-dom-v5-compat";
            
            // other stuff
    
            <BrowserRouter>
              <CompatRouter> // nest inside v5 router
                <Switch>
                  <Route path={BASE_PATH}>
                    <App />
                  </Route>
                  <Route>
                    <Redirect to={BASE_PATH} />
                  </Route>
                </Switch>
              </CompatRouter>
            </BrowserRouter>
    

    但是,如果随后尝试使用useMatches,则会出现以下错误:

    useMatches must be used within a data router.

    我会使用createBrowserRouter(或类似的数据API),但这是一个巨大的应用程序,所以我想逐步升级我的路由。通过使用liek-createBrowserRouter,我必须替换整个BrowserRoute——这是一个太大的变化。

    有没有一种方法可以通过CompatRouter进行增量更改 使用新的useMatches,而不必一次进行大规模重写?

    0 回复  |  直到 1 年前