Javascript 通过npm安装的组件的包装组件

Javascript 通过npm安装的组件的包装组件,javascript,reactjs,Javascript,Reactjs,我有一个名为checkbox.js的文件,其中包含以下内容 import 'icheck/skins/all.css' import react_icheck from 'react-icheck' export default react_icheck 我之所以这样做是因为我想减少一行,那就是导入“icheck/skins/all.css”放在我的模块中。例如,我有3个模式:1。产品,产品细节和设置,都使用了icheck,我想避免在3个不同的地方导入'icheck/skins/all.cs

我有一个名为checkbox.js的文件,其中包含以下内容

import 'icheck/skins/all.css'
import react_icheck from 'react-icheck'

export default react_icheck
我之所以这样做是因为我想减少一行,那就是导入“icheck/skins/all.css”放在我的模块中。例如,我有3个模式:1。产品,产品细节和设置,都使用了icheck,我想避免在3个不同的地方导入'icheck/skins/all.css'。这就是为什么我有一个名为checkbox.js的包装器组件。但我有这个错误

./resources/assets/app/module/product.js
95:24-32 "export 'Checkbox' was not found in './common/Checkbox'
当我这样做的时候

import { Checkbox, Radio } from './common/checkbox';
在我的模块中


如果可能的话,如果我找到了另一个有用的组件(例如dropdown),我也希望将其放入dropdown.js中,以便将其作为我自己的全局组件。但首先,我如何解决上述问题呢?

这是因为您使用了导出默认值,但必须使用导出 大概是这样的:

import 'icheck/skins/all.css'
import {* as react_icheck} from 'react-icheck'

export {...react_icheck}
class MyComponent {
  render() {
    return(

    );
  }
};
export {MyComponent};
export class MyComponent {
  render() {
    ...
  }
};

0.12后做出反应我们将开始学习ES6课程。如果您使用ES6 transpiler,您将能够像这样声明您的组件:

import 'icheck/skins/all.css'
import {* as react_icheck} from 'react-icheck'

export {...react_icheck}
class MyComponent {
  render() {
    return(

    );
  }
};
export {MyComponent};
export class MyComponent {
  render() {
    ...
  }
};
或者像这样:

import 'icheck/skins/all.css'
import {* as react_icheck} from 'react-icheck'

export {...react_icheck}
class MyComponent {
  render() {
    return(

    );
  }
};
export {MyComponent};
export class MyComponent {
  render() {
    ...
  }
};

因为您没有命名导出,所以使用的是默认导出。@dfsq命名导出的方式如何?正如我所知,react_icheck拥有一切?你可以尝试你的代码,它不会工作,因为我已经尝试过了。这个
export{react_icheck}?就这些吗?你能试着把你的答案更新成一个完整的工作代码吗?