reactjs - 如何延迟加载 "import { SelectedComponent } from {Library}"?

标签 reactjs lazy-loading

我正在使用带有 Vite 和 Ionic 的 React 18,并且我正在尝试延迟加载 IonDatetime 组件:

import { IonDatetime } from '@ionic/react';
const ControllerDatetime: React.FC<ControllerDatetimeProps> = ({
  control,
  label,
  name,
  clearErrors,
  disabled,
}: ControllerDatetimeProps) => {
  return (
    <Controller
      control={control}
      name={name}
      rules={{ required: true }}
      render={({
        field: { onChange, onBlur, value },
        fieldState: { invalid, isTouched },
      }) => (
        <IonDatetime>
          {label}
        </IonDatetime>
      )}
    />
  );
}

不过我不知道如何在这里使用延迟加载。

我试过了

const IonDatetime = React.lazy(() => import { IonDatetime } from '@ionic/react')

但这会导致语法错误。

我成功地使用延迟加载来获取自己组件的默认导出,但如何从第三方库延迟加载特定组件?

最佳答案

React.lazy currently only supports default exports. If the module you want to import uses named exports, you can create an intermediate module that reexports it as the default. This ensures that tree shaking keeps working and that you don’t pull in unused components. (Legacy React code-splitting docs)

// IonDatetime.js
export { IonDatetime as default } from "@ionic/react";
const IonDatetime = React.lazy(() => import("IonDatetime.js"))

关于reactjs - 如何延迟加载 "import { SelectedComponent } from {Library}"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75872807/

相关文章:

javascript - ReactJs搜索按钮在fetch之前重新加载页面可以获取图像链接并显示它们

javascript - 添加有关突出显示状态的图例和信息

rest - 如何以 RESTful 方式 "lazy load"?

Android ListView 延迟加载

javascript - 如何在 React Native 中为不同的 IOS 设备设置字体大小

css - Material UI Chips - 阻止它们在事件时改变颜色

reactjs - 追踪 React 组件重新渲染的原因

jquery - 在 jQuery 中加载 Mustache 模板返回 Document 对象而不是原始字符串

lazy-loading - 延迟加载或巨大的 CSS-sprite(大小为 9MB)

Java JDBC 延迟加载的结果集