当给出相同的结构时,为什么要求行为与导入不一样

时间:2018-10-27 11:33:28

标签: javascript reactjs

importrequire方面,我似乎根本不了解。从我读过的书中,我知道不同之处在于require基于CommonJS之类的模块加载程序,而导入实际上是ES6功能。

假设以下内容:

import ExamplePost from 'example-post.md'

这是使用MDX JS作为适当的加载程序的示例导入,我  在我的React渲染函数中设置如下:

render () {
  return <ExamplePost />
}

上面的方法很好用,但是 因为我想动态加载不同的Markdown文件,并且我已经知道ES6 import是静态的,所以我打算这样做:

let postName = 'example-post'
const ExamplePost = require(`${postName}.md`)

不幸的是,它不起作用,我得到:ExamplePost is not defined

我在文档顶部都设置了两个示例。我还检查了这两个版本,并看到结果有所不同:

ES6导入返回:[Function]

要求退货:Object [Module] { default: [Function] }

帮助使我正确地理解为什么上面的require不能正常工作吗?

1 个答案:

答案 0 :(得分:2)

public void FacebookLogin() { if (FB.IsLoggedIn) { FB.LogOut(); //it doesn't work, user is still logged in return; } var permissions = new List<string>() {"email"}; FB.LogInWithReadPermissions(permissions); //t } 默认导出模块,import模块本身。

require

请参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

还要检查Can't require() default export value in Babel 6.x