Я признаю, что это не самое сексуальное решение, но я считаю, что самым простым способом было бы использовать различные компоненты Table-UI для создания двух столбцов, а затем вложить вашу сетку или таблицу в первый столбец.Если у кого-то есть лучшая альтернатива, пожалуйста, прокомментируйте, чтобы я тоже мог учиться!
В моем примере фрагмента я повторно использовал компоненты таблицы для вложения таблицы.Я не получил стиль, который точно соответствовал бы вашему, но достаточно близко для работоспособной отправной точки.
const { Table, TableBody, TableRow, TableCell } = window["material-ui"];
const NestedTableExample = () => {
const sharedColumnProps = { border: "none" };
const sharedDivProps = {
border: "solid 3px #000",
height: "100%",
padding: "10px",
width: "100%"
};
const styles = {
column1: { width: "150px", ...sharedColumnProps },
column1Div: { background: "lightblue", ...sharedDivProps },
column2: {
width: "50px",
...sharedColumnProps
},
column2Div: {
background: "orange",
...sharedDivProps
}
};
return (
<Table style={{ height: "100%" }}>
<TableBody>
<TableRow>
<TableCell style={{ border: "none" }}>
<Table>
<TableBody>
<TableRow>
<TableCell style={styles.column1}>
<div style={styles.column1Div}>Cell1</div>
</TableCell>
</TableRow>
<TableRow>
<TableCell style={styles.column1}>
<div style={styles.column1Div}>Cell2</div>
</TableCell>
</TableRow>
<TableRow>
<TableCell style={styles.column1}>
<div style={styles.column1Div}>Cell3</div>
</TableCell>
</TableRow>
</TableBody>
</Table>
</TableCell>
<TableCell style={styles.column2}>
<div style={styles.column2Div}>Cell4</div>
</TableCell>
</TableRow>
</TableBody>
</Table>
);
};
ReactDOM.render(<NestedTableExample />, document.getElementById("app"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/@material-ui/core@3.6.2/umd/material-ui.production.min.js"></script>
<div id="app"></div>