使用 Material-UI 嵌套网格

ada*_*rch 5 grid reactjs material-ui

所以,我在让 material-ui 网格按我想要的方式工作时遇到了问题。我正在尝试用两列渲染一行。

import React from 'react';
import DefaultLayout from '../layouts/default';
import Grid from '@material-ui/core/Grid';

class profile extends React.Component {
  render() {

    return (
    <React.Fragment>
      <Grid container spacing={8}>
      <Grid item xs={12} style={{backgroundColor: 'blue', height: '250px'}}></Grid>
      <Grid item xs={12} style={{backgroundColor: 'grey', height: '250px'}}></Grid>

      {/* Form two columns with next row*/}

      <Grid container={'true'} item sx={12}>
        <Grid item={'true'} xs={6} md={8} style={{backgroundColor: 'green', height: '50px'}}></Grid>
        <Grid item={'true'} xs={6} md={4} style={{backgroundColor: 'orange', height: '50px'}}></Grid>
      </Grid>
    </Grid> 
  </React.Fragment>
)}}

module.exports = profile;
Run Code Online (Sandbox Code Playgroud)

目前,它正在渲染:

在此处输入图片说明

我希望橙色和绿色行是同一行上的两列。并排。

谁能破译我的代码有什么问题?

@material-ui/核心:^3.9.2

反应:^16.7.0

小智 6

我认为问题在于您的前两行被标记为 xs={12} 并且将占据整个页面宽度。我也正在从 bootstrap 过渡(伙计……谁知道 React-bootstrap 会有这么多 bug!),这是一个调整……但万一你不明白,试试这个?

import React from 'react';
import DefaultLayout from '../layouts/default';
import Grid from '@material-ui/core/Grid';

class profile extends React.Component {
  render() {

    return (
    <React.Fragment>
      <Grid container spacing={8}>
      //the below columns will be full width! I've changed the 12 to 6
      <Grid item xs={6} style={{backgroundColor: 'blue', height: '250px'}}></Grid>
      <Grid item xs={6} style={{backgroundColor: 'grey', height: '250px'}}></Grid>

      {/* Form two columns with next row*/}

      <Grid container={'true'} item sx={12}>
        <Grid item={'true'} xs={6} md={8} style={{backgroundColor: 'green', height: '50px'}}></Grid>
        <Grid item={'true'} xs={6} md={4} style={{backgroundColor: 'orange', height: '50px'}}></Grid>
      </Grid>
    </Grid> 
  </React.Fragment>
)}}

module.exports = profile
Run Code Online (Sandbox Code Playgroud)

我还没有测试过,但应该可以吗?

  • fwiw,只要你有一个设置为 true 的 prop,你就可以排除该值。而不是“&lt;Grid item={'true'}&gt;”,只需使用“&lt;Grid item&gt;” (5认同)

Hem*_*ari 3

您需要使用GridListGridListTitle

请尝试使用下面的代码以获得所需的输出

import React from 'react';
import DefaultLayout from '../layouts/default';
import GridList from "@material-ui/core/GridList";
import GridListTile from "@material-ui/core/GridListTile";

class profile extends React.Component {
  render() {

    return (
    <React.Fragment>
      <GridList cols={1}>
          <GridListTile style={{backgroundColor: 'green', height: '50px'}}>

          </GridListTile>
          <GridListTile style={{backgroundColor: 'orange', height: '50px'}}>

          </GridListTile>
      </GridList>
      <GridList cols={2}>
          <GridListTile style={{backgroundColor: 'green', height: '50px'}}>

          </GridListTile>
          <GridListTile style={{backgroundColor: 'orange', height: '50px'}}>

          </GridListTile>
      </GridList>

  </React.Fragment>
)}}

module.exports = profile;
Run Code Online (Sandbox Code Playgroud)