2016-11-22 55 views
1

我进入了需要使用require()而不是es6 import的情况。require()相当于从某处导入{Something}

目前我进口看起来像这样: import { Footer } from 'LoginComponents'

LoginComponents有Content默认出口和额外出口像Footer。我需要构建一个只需获取页脚的require语句,我试过require('LoginComponents').Footer,显然这是无效的。

这是页脚出口:

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

你得到的错误是什么,并且是你创建的loginComponents,或者它是一个npm包 –

回答

1

我想你不小心尝试需要一个包,而不是一个本地文件

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

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

不管怎样,我们有什么错require(path).property - 记require只是一个具有正常返回值(一个对象)的正常函数,所以没有什么不可思议的事情发生。访问其返回值的属性是非常好的。

0

如果您试图要求一个包,那么您可以在require内直接调用包名。因此,您需要指定该文件的路径。

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

要求只是一个函数,并将内容作为对象返回,因此我们可以访问属性usng'。'