[英]Dynamic Lazy Loading using React.Lazy (16.6.0)
您有
2
3個主要問題:
在這一行:
var c = <dynamicLoader component={prop.component} />;
用戶定義的組件必須大寫 。 因此將其更改為:
var c = <DynamicLoader component={prop.component} />;
顯然,您還需要更改聲明:
function DynamicLoader(props) { return ( <Suspense fallback={<div>Loading...</div>}> React.lazy(() => import(`${props.component}`)) </Suspense> ); }
在這條線
return <Route exact path={prop.path} component={c} key={key} />;
就像prop component
的名稱所暗示的那樣,您需要傳遞一個組件而不是一個元素,您可以閱讀有關DOCS差異的更多信息。
因此,您需要將其更改為:
return <Route exact path={prop.path} component={() => c} key={key} />;
你是對的。 我錯過了孩子部分,您正在渲染字符串。 您可以創建一個變量並將其呈現為子變量:
function DynamicLoader(props) { const LazyComponent = React.lazy(() => import(`${props.component}`)); return ( <Suspense fallback={<div>Loading...</div>}> <LazyComponent/> </Suspense> ); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.