Pau*_*erg 6 reactjs es6-module-loader react-suspense
使用 es6 导入,您可以执行以下操作:
import { MyComponent } from "../path/to/components.js";
export default function () {
return <MyComponent/>;
}
Run Code Online (Sandbox Code Playgroud)
我也可以这样做React.lazy吗?
const { MyComponent } = lazy(() => import("../path/to/components.js"));
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,但我不确定它是否与此错误或我遇到的其他错误有关:
元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件)但得到:未定义
当我遇到 FontAwesome 的问题时,我是这样做的:
const FontAwesomeIcon = React.lazy(()=> import('@fortawesome/react-fontawesome').then(module=>({default:module.FontAwesomeIcon})))
Run Code Online (Sandbox Code Playgroud)
当然可以。这是很多人都犯过的无心错误
const sub = 'a'
const obj = { a: 'alpha', b: 'beta' }
obj.sub // wrong (accessing a direct key)
obj[sub] // right (computed property)
Run Code Online (Sandbox Code Playgroud)
许多人都犯了同样的错误。这是一项正在进行的工作,但效果非常好,感谢所有其他答案来根据我的需要定制它。
const ComponentFactory = ({ componentName, ...props }) => {
const Component = lazy(() => import('baseui/typography').then((module) => ({ default: module[componentName] })))
return (
<Suspense fallback={<div>Loading...</div>}>
<Component {...props} />
</Suspense>
)
}
Run Code Online (Sandbox Code Playgroud)
用法:
<ComponentFactory
componentName='Paragraph1'
margin='0.1rem 0rem 0.25rem 0.3rem'
color={style[of].headingText}
>
{headingMessage}
</ComponentFactory>
Run Code Online (Sandbox Code Playgroud)
如果您使用react-lazily ,则可以。
import { lazily } from 'react-lazily';
const { MyComponent } = lazily(() => import("../path/to/components.js"));
Run Code Online (Sandbox Code Playgroud)
它还允许导入多个组件:
const { MyComponent, MyOtherComponent, SomeOtherComponent } = lazily(
() => import("../path/to/components.js")
);
Run Code Online (Sandbox Code Playgroud)
有关更多选项,请参阅此答案。
| 归档时间: |
|
| 查看次数: |
2840 次 |
| 最近记录: |