尝试使用render道具代替component
<Route path='/' render={()=> <Prime />} exact /><Route path='/demo' render={()=> <Demo />} />解决方法
我正在使用React react-router(4.3.1)的最新版本(16.6),并尝试通过使用代码拆分React.Suspense。
尽管我的路由有效,并且代码确实分成了多个动态加载的包,但我收到有关不返回函数,而是返回的警告Route。我的代码:
import React,{ lazy,Suspense } from ’react’;import { Switch,Route,withRouter } from ’react-router-dom’;import Loading from ’common/Loading’;const Prime = lazy(() => import(’modules/Prime’));const Demo = lazy(() => import(’modules/Demo’));const App = () => ( <Suspense fallback={<Loading>Loading...</Loading>}> <Switch> <Route path='/' component={Prime} exact /> <Route path='/demo' component={Demo} /> </Switch> </Suspense>);export default withRouter(App);
控制台警告如下: Warning: Failed prop type: Invalid propcomponentof typeobjectsupplied toRoute,expectedfunction.
普通导入会返回一个函数,但是动态导入lazy()会返回一个对象。
有什么解决办法吗?