react-bootstrap Grid中的等宽和高度单元格

时间:2016-10-14 15:40:44

标签: reactjs grid flexbox react-bootstrap react-bootstrap-table

我正在尝试使div网格中的react-bootstrap单元格自动等于宽度和高度。这些单元格的内容大小会有所不同,整个网格的宽度也是如此。目标是使其响应并独立于细胞内容的大小。

此外,我正在考虑使用现代的FlexBox布局来实现这一目标(如果存在)。之前我使用过FlexBox,我知道它可能是实现这样的布局的最佳选择。

import { Grid, Row, Col } from 'react-bootstrap';

...

<Grid fluid={true}>
    <Row className="show-grid" style={{border: "1px solid brown"}}>
        {dummyData.map(function(object, i){
            return <Col key={i} sm={6} md={3} style={{border: "1px solid yellow"}}>
                <div style={{width:"100%", height:"100%, border: "1px solid blue", backgroundImage:"url("+dummyData[i].url+")"}}>{dummyData[i].city}</div>
            </Col>;
        })}
    </Row>
</Grid>

1 个答案:

答案 0 :(得分:2)

解决方案是使用React组件,将组件的高度设置为支撑宽度。

import React from 'react';
import Dimensions from 'react-dimensions';

class Square extends React.Component {
    constructor(props) {
        super(props);
    }
    render() {
        return (
            <div
                style={{
                    width:this.props.containerWidth,
                }}>
                {this.props.city}
            </div>
        );
    }
}

export default Dimensions()(Square) // Enhanced component

对网格的相应更改:

<Grid fluid={true}>
    <Row className="show-grid" style={{border: "1px solid brown"}}>
        {dummyData.map(function(object, i){
            return <Col key={i} sm={6} md={3} style={{border: "1px solid yellow"}}>
                <Square image={dummyData[i].url} title={dummyData[i].city} value={dummyData[i].value}></Square>
            </Col>;
        })}
    </Row>
</Grid>