簡體   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