我在做可视化拖拽编辑器,想让用户能选我们封装好的业务组件,但这些组件是异步加载的。试过用 React.lazy 包裹,结果报错说不能在 Suspense 外使用。
现在卡在这儿了,有没有不用 Suspense 也能动态注册组件的方法?比如手动维护一个组件映射表?类似这样:
const componentMap = {
Card: dynamic(() => import('./Card')),
Banner: dynamic(() => import('./Banner'))
};
// 然后在渲染时根据类型取出来用
或者简单点,编辑器顶层直接包个全局 Suspense 最省事,反正可视化编辑器本身就要 loading 状态的。