我知道这看起来很容易..。但我不知道怎么弄到它。因此,任何建议都是受欢迎的。谢谢。
我有什么
我正在使用React.js。我有一个元素数组(假设为20个)。
我想要什么
我希望每一行呈现4个元素(例如)。
什么问题是
我不知道如何限制每行组件/列的数量。
此代码在一行中呈现所有组件..。我怎样才能限制它?
populatingLayout() {
arrayData.map(item => {
return (
<div className="FlexRow">
<div className="FlexColumn">
<Component dataProp={item} />
</div>
</div>
)
}
}
render() {
return (
<div className="FlexGrid">
{this.populatingLayout()}
</div>
)
}
提前感谢!
发布于 2017-08-21 06:37:07
我想你是在找这样的东西。假设您的元素是数组中的20个div元素。然后,您可以在一个单独的行中显示每四个元素,如下所示。
class Hello extends React.Component {
constructor(props) {
super(props);
}
//this function will return array of element 20 divs in this case
multipleElements() {
let elements = [];
for(let i = 0; i < 20; i++) {
elements.push(
<div key={i}> element{i+1} </div>
)
}
return elements;
}
//this function will separate each four element to display
separateElement () {
var separateElements = [];
var multiElements = this.multipleElements();
for(var i = 0; i < multiElements.length; i+=4) {
var oneRow = [];
oneRow.push(multiElements.slice(i, i+4).map(item => {
return <div style={{display: 'inline-block'}}>{item}</div>
}))
separateElements.push(oneRow.map(itm => {return <div>{itm}</div>}))
}
return separateElements;
}
render() {
return (<div> {this.separateElement()} </div>);
}
};
ReactDOM.render(
<Hello/>,
document.getElementById('container')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.0/react-dom.min.js"></script>
<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>
发布于 2017-08-21 04:29:25
你可以使用这种风格:
.row {
float: left;
position: relative;
width: 100%;
}
.column {
float: left;
position: relative;
width: 25%;
}
render() {
return (
<div className="FlexGrid">
<div className="row">
arrayData.map(item => <div className="FlexColumn"><Component dataProp={item} /></div>);
</div>
</div>
)
}
使用这个css,您的行将是父元素的整个宽度,而您的列将从您的行的1/4宽度。
https://stackoverflow.com/questions/45796987
复制相似问题