我知道它很奇怪的用例,但我已经处于 PoC 的中间并且遇到了以下问题。
我在 autoGenerated 目录中有 X 个 jsx 文件(这些文件是使用 react-magic 库从 HTML 转换而来的)。现在我需要根据路径将它们动态加载到我的反应应用程序中。为了更清楚地查看代码片段。
<Route path="*" getComponent={(location, cb) => {
const componentName = makeComponentName(location.pathname);
$.get(`/autoGenerated/${componentName}.jsx`, (res) => {
const element = React.createElement(res);
cb(null, element);
})
}} />
</Route>
从服务器下载的元素可以是纯 JSX 内容,也可以是带有 React.createClass 等的元素。这取决于我如何转换我的 html 代码。
究竟是什么问题?我无法将从 ajax 调用下载的字符串转换为实际组件。我也试过在组件方面这样做 - 我的意思是我有 generalComponent,它通过 ajax 下载内容(也获取字符串),我试图以某种方式将此字符串传递给渲染方法..它也没有工作。
当然,静态加载所有组件都不是选项,因为它们有数百个,甚至数千个。
你有什么线索吗?