【问题标题】:require() equivalent if import { Something } from 'somewhere'如果 import { Something } from 'somewhere' 等价于 require()
【发布时间】:2017-04-05 21:09:00
【问题描述】:

我遇到了需要使用 require() 而不是 es6 import 的情况。

目前我的导入如下所示: import { Footer } from 'LoginComponents'

LoginComponents 具有Content 的默认导出和Footer 等附加导出。我需要构建一个仅获取 Footer 我尝试过 require('LoginComponents').Footer 的 require 语句,显然这是无效的。

这是页脚导出:

export const Footer = () => (
  <footer>Hello World</footer>
);

【问题讨论】:

  • 你得到的错误是什么,是你创建的 loginComponents 还是一个 npm 包

标签: javascript reactjs import ecmascript-6 require


【解决方案1】:

我认为您不小心尝试需要一个包而不是本地文件

// require LoginComponents package
const Footer = require('LoginComponents').Footer

// require LoginComponent.js local file
const Footer = require('./LoginComponents').Footer

不管怎样,require(path).property 没有任何问题——记住require 只是一个具有正常返回值(一个对象)的普通函数,所以它没有什么神奇之处。访问其返回值的属性非常好。

【讨论】:

    【解决方案2】:

    如果你想要一个包,那么你可以直接在 require 中调用包名。否则你需要给出文件的路径。

    //if it is package
    var Footer = require('LoginComponents').Footer;
    //else
    var Footer = require('path to login component/LoginComponents').Footer
    

    Require 只是一个函数,会将内容作为对象返回,因此我们可以使用 '.' 访问属性

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 1970-01-01
      • 2016-02-16
      • 2017-11-12
      • 2015-07-31
      • 2022-12-23
      • 1970-01-01
      • 2016-10-05
      • 1970-01-01
      相关资源
      最近更新 更多