从多个 class 导出的 js 中反应加载导入
react-loadable import from multiple class exported js
如何从 react-loadable
.
中的多个 class 导出的 js
文件导入
我正在尝试使用 Home.js
中的 react-loadable
从 MyButton.js
导入 CustomButton
。这是我知道的唯一方法,但行不通。
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
});
请帮忙。提前致谢。
我可以这样做:
const AsyncButton = Loadable({
loader: () => import('../../button/MyButton').then(module => module.CustomButton),
loading: Loading
});
但是,我无法在一个变量包含所有其他导出的地方找到它。
我从
找到了解决方案
Loadable({
loader: () => import('./my-component'),
render(loaded, props) {
let Component = loaded.namedExport;
return <Component {...props}/>;
}
});
正在运行。
我知道这已得到解答,但我想出了一种方法来让一个变量包含所有命名的导出。见下文。
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}/>;
}
})
并与 react-router 一起用作...
<Route path="/:slug" exact component={AsyncSubSites('Membership')} />
<Route path="/:slug" exact component={AsyncSubSites('About')} />
以及任何其他命名的导出
如何从 react-loadable
.
中的多个 class 导出的 js
文件导入
我正在尝试使用 Home.js
中的 react-loadable
从 MyButton.js
导入 CustomButton
。这是我知道的唯一方法,但行不通。
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
});
请帮忙。提前致谢。
我可以这样做:
const AsyncButton = Loadable({
loader: () => import('../../button/MyButton').then(module => module.CustomButton),
loading: Loading
});
但是,我无法在一个变量包含所有其他导出的地方找到它。
我从
找到了解决方案Loadable({
loader: () => import('./my-component'),
render(loaded, props) {
let Component = loaded.namedExport;
return <Component {...props}/>;
}
});
正在运行。
我知道这已得到解答,但我想出了一种方法来让一个变量包含所有命名的导出。见下文。
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}/>;
}
})
并与 react-router 一起用作...
<Route path="/:slug" exact component={AsyncSubSites('Membership')} />
<Route path="/:slug" exact component={AsyncSubSites('About')} />
以及任何其他命名的导出