我正在尝试构建一个动态的应用程序。所以我想为什么不通过将json对象传递给它来构建元素。
我有这个:
const input = React.createClass ({
render() {
let data = this.props.data;
return (
<input placeholder={data.placeholder} /> //current
<input {data} /> //desired
);
}
});
数组中的每个元素都会传递给我的元素,所以我不想定义每个属性,而是要确保我传递正确的属性并让它建立在流感上。
当我这样做时,所有的地狱都会松动:
bw.close();
答案 0 :(得分:0)
我不确定这是最好的主意,但由于我不了解您的全部要求,我们走了。为了完成这项工作,您可以尝试在{...data}
元素中执行{data}
而不是<input/>
。但是,自定义属性有一定的保留。有关更多信息,请参阅React文档的this section。另外here是关于三个点(...)的更多信息。
答案 1 :(得分:0)
带有input
道具的自定义data
组件对我来说似乎很奇怪和混乱。
如果你只看Babel编译<input foo={bar} />
的内容,动态构建元素非常容易。鉴于您的数据数组,您所要做的就是
var inputs = data.map(
({element, ...props}) => React.createElement(element, props)
);