реактивно загружаемый импорт из нескольких классов экспортируемых js - PullRequest
0 голосов
/ 02 мая 2018

Как импортировать из нескольких экспортируемых классов js файл в react-loadable.
Я пытаюсь импортировать CustomButton из MyButton.js, используя react-loadable в Home.js. Это единственный способ, которым я знаю, это не работает.

MyButton.js

import {
  CustomButton,
  BUTTON_STYLE,
  BUTTON_TYPE,
  BUTTON_SIZE,
  BUTTON_ALIGN,
  COLOR
} from './buttons';
module.exports = {
  CustomButton,
  BUTTON_STYLE,
  BUTTON_TYPE,
  BUTTON_SIZE,
  BUTTON_ALIGN,
  COLOR
}

Home.js

const AsyncButton = Loadable({
  loader: () => import('../../button/MyButton'),
  loading: Loading
});

Пожалуйста, помогите. Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Нашел решение от

реактивно-загружаемая документация

Loadable({
  loader: () => import('./my-component'),
  render(loaded, props) {
    let Component = loaded.namedExport;
    return <Component {...props}/>;
  }
});

Работает.

0 голосов
/ 03 июля 2018

Я знаю, что это ответ, но я нашел способ получить одну переменную, которая будет содержать все именованные экспорты. Смотри ниже.

    AsyncSubSites = namedComponent => Loadable({
    loader: () =>
      import( /*webpackChunkName: "SubSites"*/ "./SubSites/SubSites"),
    loading: () => <Loading/>, //loader/spinner etc.
    modules: ["SubSites"],
    render(loaded, props) {
      let Component = loaded[namedComponent];
      return <Component {...props}/>;
    }
  })

и используется с реагирующим маршрутизатором как ...

<Route path="/:slug" exact component={AsyncSubSites('Membership')} />
<Route path="/:slug" exact component={AsyncSubSites('About')} />

и любой другой названный экспорт

0 голосов
/ 10 мая 2018

Я смог сделать это так:

const AsyncButton = Loadable({
  loader: () => import('../../button/MyButton').then(module => module.CustomButton),
  loading: Loading
});

Однако я не могу получить его, когда одна переменная содержит все остальные экспорты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...