【发布时间】:2023-02-14 11:27:28
【问题描述】:
在我的电子应用程序中,我想为 UI 提供某种可扩展性。 用户应该能够在我的应用程序内的文本编辑器内创建一个反应组件。他们的代码被保存到一个文件中。他们还可以定义组件在我的 UI 中的放置位置。
问题是:我似乎无法弄清楚如何在我现有的 React 应用程序中解析和注入用户定义的 JSX。
我以为我尝试使用 babel transformSync,但我无法让它工作。这是我到目前为止所拥有的:
const DynamicComponent = (props) => {
const reactCode = `
return (
<div>
<h1 >Hello, World!</h1>
</div>
)
`;
const transpiledCode = transform(reactCode, {
presets: ["@babel/preset-react"]
}).code;
console.log("transpiled", transpiledCode);
globalThis["React"] = React;
const Dynamic = new Function(`return ${transpiledCode}`)();
return <Dynamic />;
};
https://codesandbox.io/s/mobx-state-tree-todolist-3umd4?file=/components/TodoList.js
我想在待办事项列表下方显示“<h1>Hello, World!</h1>”。
【问题讨论】:
标签: javascript reactjs babeljs