繁体   English   中英

类型 '() => JSX.Element' 不可分配给类型 'ReactNode'

[英]Type '() => JSX.Element' is not assignable to type 'ReactNode'

尝试从 object 调用组件以类型错误结束:类型“() => JSX.Element”不可分配给类型“ReactNode”

const Login = () => <>login</>

const publicRoutes = [
  {
    path: '/login',
    component: Login
  }
]

function AppRouter() {
  return <Routes>
      {publicRoutes.map(({path, component}) => (
        <Route path={path} element={component} /> // warning
      ))}
    </Routes>
  )
}

从版本 6 开始,react 路由不再获取组件,而是获取元素。 因此,您需要像这样传递<Component/>而不是传递组件:

{publicRoutes.map(({path, component: Component}) => (
  <Route path={path} element={<Component/>} /> // warning
))}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM