反应组件元素的动态属性

时间:2016-06-05 18:59:33

标签: javascript reactjs

我正在尝试构建一个动态的应用程序。所以我想为什么不通过将json对象传递给它来构建元素。

我有这个:

const input = React.createClass ({
    render() {
        let data = this.props.data;
        return (
            <input placeholder={data.placeholder} /> //current
            <input {data} /> //desired
        );
    }
});

数组中的每个元素都会传递给我的元素,所以我不想定义每个属性,而是要确保我传递正确的属性并让它建立在流感上。

当我这样做时,所有的地狱都会松动:

 bw.close();

2 个答案:

答案 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)
);