【发布时间】:2019-03-28 03:07:05
【问题描述】:
假设我有一个包含 .md 文件的文件夹,如下所示:
/static/blog/
example_title.md
another_example.md
three_examples.md
我有一个包含所有标题的数组:
const blogEntries = ["example_title", "another_example", "three_examples"]
在我的组件中,我想import 所有这些,请注意可能更少或更多。
有没有办法动态导入它们,类似于:
for (let entry in blogEntries) {
import `Markdown_${entry}` from `/static/blog/${entry}.md`
}
稍后在我的渲染中我可以做到:
<Markdown_three_examples />
上述显然行不通,但我正在寻找一种实现类似的方法。
【问题讨论】:
-
当你构建一个 react 应用程序时,你所有的导入/导出内容都会转换成一个大的 js 文件。无法动态导入内容,因为 babel 无法将其构建到其文件中。解决方案是构建一个 Markdown 组件和
fetch()挂载服务器后的 md 文件。 -
@ChrisG 你能举个例子吗?
-
您在哪方面需要帮助?在
componentDidMount()中,使用fetch()加载 Markdown 文件。将其内容设置为您的状态的一部分,以便它被渲染。通过渲染多个组件,使用您的文件数组和map()来实现循环。 -
现在有两个人建议使用
import(),这根本不需要这样做,而且 imo 严格按照表面价值处理这个问题,而忽略了大局。这是我的看法:codesandbox.io/s/l2jlq3j78m
标签: javascript reactjs ecmascript-6