[英]Dynamic attributes on a react component element
我正在尝试构建一个尽可能动态的应用程序。 所以我想为什么不通过仅将json对象传递给它来构建元素。
我有这个:
[
{
key: 1,
element: 'input',
type: 'text',
placeholder: 'Jamie is'
},
{
key: 2,
element: 'input',
type: 'text',
placeholder: 'Jamie is Not'
},
{
key: 3,
element: 'input',
type: 'password',
placeholder: 'Jamie is'
}
]
数组中的每个元素都将传递给我的元素,因此不必定义每个属性,我只想确保我传递正确的属性并将其构建在流感上即可。
当我这样做时,所有的地狱都变得松散了:
const input = React.createClass ({
render() {
let data = this.props.data;
return (
<input placeholder={data.placeholder} /> //current
<input {data} /> //desired
);
}
});
对我来说,带有data
道具的自定义input
组件看起来很奇怪和混乱。
如果仅查看Babel将<input foo={bar} />
编译为什么内容,就可以动态地动态构建元素。 给定数据数组,您所需要做的就是
var inputs = data.map(
({element, ...props}) => React.createElement(element, props)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.