如何在React中动态分配属性
How to assign properties dynamically in React?
这里有一个函数,它有两个参数:
- 我要创建的标记的名称
- 具有以下属性的对象
使用React,我创建了一个组件并将该元素呈现到DOM中。问题是,我想向元素添加属性,但它不允许循环在元素中设置属性。
var Element = function(element, properties) {
var newElement = React.createClass({
render: function() {
return (
React.createElement(element, {}, 'react reuseable')
);
}
});
ReactDOM.render(React.createElement(newElement, null), document.getElementById('content'));
}
以下是创建React元素的函数调用:
Element('g', {
id: 'DrawingController.drawingPathCounter ' + '_shape',
d: 'path',
fill: 'none',
stroke: 'Controllers.TemplateController.wireFrameColour_Selected',
'stroke-width': 1,
'class': 'drawingpath',
pathhover: '',
'vector-effect': 'non-scaling-stroke'
})
您正在重新实现现有的React.createElement
方法。
您可以将组件的唯一道具存储在数组中,然后使用这些道具创建组件列表。
var propsList = [
{ id: 1, d: 'path', fill: 'none' },
{ id: 2, d: 'path', fill: 'none' },
{ id: 3, d: 'path', fill: 'none' }
];
var components = propsList.map(function(props) {
return React.createElement('g', props);
});
var App = React.createClass({
render: function() {
return React.createElement('div', null, components);
}
});
ReactDOM.render(
React.createElement(App, null),
document.getElementById('content')
);
如果您希望属性列表是动态的,那么您应该将其存储在组件的状态中。
var App = React.createClass({
getInitialState: function() {
return {
propsList: []
};
},
addProps: function(props) {
var propsList = this.state.propsList.concat([props]);
this.setState({ propsList: propsList });
},
render: function() {
var components = this.state.propsList.map(function(props) {
return React.createElement('g', props);
});
return React.createElement('div', null, components);
}
});
相关文章:
- 动态分配GA增强型电子商务跟踪器
- 如何向JSON数组动态添加属性
- 新手查询动态添加属性
- Javascript从函数分配属性
- 动态分配类“;不是构造函数”;
- 在主要的JavaScript引擎中,在JavaScript关联数组(动态对象属性)中检索/插入的复杂性是多少
- 如何使用Handlebars在父视图中动态分配部分视图
- 如何动态命名属性并将对象推送到该属性
- 使用 JQuery 从另一个元素的 id 为图像分配属性
- 向对象动态添加属性
- 为什么typeof(null)返回“;对象”;,但是你可以't为其分配属性
- JSX+Rreact中的动态tabIndex属性
- 在 jQuery/JavaScript 中动态分配对象属性以通过 ajax 发布
- 检测使用 javascript 动态分配的 css 样式/属性
- 为svg对象动态分配数据属性
- 如何在React中动态分配属性
- 动态地为对象分配属性名
- HTML元素属性动态分配
- 动态分配数据角色属性
- 在Internet Explorer中动态地为输入字段分配属性