React-admin 自定义路由:属性 noLayout 在 Route 类型上不存在

React-admin custom routes: Property noLayout does not exist on type Route

我正在尝试制作一个忘记密码的页面,该页面需要在没有布局的情况下呈现。我正在按照文档、管理页面、customRoutes 部分中的示例进行操作,并将其调整为 Typescript。没有 noLayout 属性,路由正在渲染,但在布局内。在路由中添加noLayout时出现问题:

属性 'noLayout' 在类型 'IntrinsicAttributes & IntrinsicClassAttributes<Route<{}, "/forgot-password">> & Readonly<RouteProps<"/forgot-password", {}> & OmitNative<...>> & Readonly<...>' 上不存在。

我意识到我正在使用来自 react-router-dom 的 Route 组件来实现 RouterProps 并且 属性 noLayout 在 CustomRoute 中声明(扩展 RouterProps)。管理员的 customRoutes 属性 正在等待一组实现 CustomRoutes 接口的东西,但我提供了一组路由(就像在文档中一样)

有人知道怎么解决吗?

这是我的 App.tsx:

import React from 'react'
import { Admin, Resource } from 'react-admin'
import { Route } from 'react-router-dom'
import portugueseMessages from '@henriko/ra-language-portuguese'
import polyglotI18nProvider from 'ra-i18n-polyglot'

import dataProvider from './providers/dataProvider'
import authProvider from './providers/authProvider'
import Layout from './layout/Layout'
import Login from './pages/Login'
import Dashboard from './pages/Dashboard'
import ForgotPassword from './pages/ForgotPassword'

const App: React.FC = () => {
  const i18nProvider = polyglotI18nProvider(() => portugueseMessages, 'pt')

  return (
    <Admin
      dataProvider={dataProvider}
      authProvider={authProvider}
      i18nProvider={i18nProvider}
      layout={Layout}
      loginPage={Login}
      customRoutes={[
        <Route
          key="forgot-password"
          path="/forgot-password"
          component={ForgotPassword}
          exact
          noLayout
        />
      ]}
    >
      <Resource {...Dashboard} />
    </Admin>
  )
}

React-admin 公开了一个您可以在这种情况下使用的 CustomRoute 类型:

import { CustomRoute } from 'react-admin';

const App: React.FC = () => {
  const i18nProvider = polyglotI18nProvider(() => portugueseMessages, 'pt')

  return (
    <Admin
      dataProvider={dataProvider}
      authProvider={authProvider}
      i18nProvider={i18nProvider}
      layout={Layout}
      loginPage={Login}
      customRoutes={[
-       <Route
+       <Route<CustomRoute>
          key="forgot-password"
          path="/forgot-password"
          component={ForgotPassword}
          exact
          noLayout
        />
      ]}
    >
      <Resource {...Dashboard} />
    </Admin>
  )
}