请问React.Suspense是否可以用来做路由懒加载?

我当前的路由配置如下

{
        path: '/advert',
        name: 'advert',
        component: LoadableComponent(() => import('pages/Advert')),
        routes: [
          {
            path: '/advert',
            exact: true,
            name: 'advertList',
            component: LoadableComponent(() => import('pages/Advert/List')),
          }
        ]
      }

pages/Advert里头是直接渲染子组件的内容:

function AdvertManage(props: RouteComponentProps & {children: ReactElement}) {
  return (props.children)
}

当我使用React.Suspense时,pages/Advert被正常加载了,但pages/Advert/List未能正常加载,使得props.children为undefined

const LoadableComponent = (component: any) => () => {
const MyComponent = lazy(component);
return <React.Suspense fallback={<PageLoading />}>
  <MyComponent/>
</React.Suspense>
};

但我使用react-loadable,则可以正常加载到

const LoadableComponent = (component: any) => Loadable({
  loader: component,
  loading: Loading,
});

想请教下大神们,React.Suspense是否可用来做路由懒加载哦?或者是我的路由配置需要跟着做一些什么样的调整吗?

阅读 1.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题