【发布时间】:2017-09-18 13:36:47
【问题描述】:
我是 javascript / React 的真正初学者...但我正在尝试基于字符串值设置标签。为什么 widget1 无法实例化? (我得到一个未捕获的 ReferenceError: FooA is not defined 错误)导入 react 组件与在同一个文件中定义它有什么区别?
import React, {Component} from "react";
import ReactDOM from "react-dom";
// Assume FooA and FooB have identical definitions
import FooA from './fooa.jsx'
class FooB extends Component {
render() {
return(<p>Hello A</p>);
}
};
class Splash extends Component {
render() {
var widget1 = eval('new ' + "FooA")
var widget2 = eval('new ' + "FooB")
return (
<div>
{(widget1.render())}
{(widget2.render())}
</div>
)
};
}
ReactDOM.render(<Splash/>, container);
我通过 webpack 传递它来获取单个 .js 文件。
有没有更好的方法来实现这一点?
【问题讨论】:
-
你是否在 fooa.jsx 中导出了任何类?也发布它的内容。
-
您不必手动执行渲染,也不必实例化组件。就这样使用它:
-
是的。我的其他文件中有“导出默认 FooA”。在第二点上,“FooA”被保存为一个字符串 - 那么代码
可以工作吗? -
如何“保持为字符串”?我不明白你的意思...
-
我将要显示的组件的标签保存在字符串变量中(它已在其他地方生成)。我不想为它映射到的所有可能的 react 组件编写一个大的 switch 语句,只需插入同名的 react 组件。
标签: javascript reactjs