如何在 React 材料中的列表项之间创建一个空格

Posted

技术标签:

【中文标题】如何在 React 材料中的列表项之间创建一个空格【英文标题】:how to create a space between list items in React material 【发布时间】:2019-11-21 22:15:26 【问题描述】:

我学习 React Material,我想在 React Material List 的每一行之间留出空格,但我不知道该怎么做。

我通过Material docs 阅读但无法弄清楚这一点,因为我是新手

我尝试这样的事情:

  <li className="list-group-item" key=el.id>
                el.title
            </li>

使用list-group-item,因为它适用于另一个列表,但现在不起作用。

Picture of two list row that dont have vertical space between

  import React,  Component  from 'react';
import  Grid, Paper, Typography  from "@material-ui/core";
import Card from "@material-ui/core/Card";
import CardActionArea from "@material-ui/core/CardActionArea";
import CardActions from "@material-ui/core/CardActions";
import CardContent from "@material-ui/core/CardContent";
import CardMedia from "@material-ui/core/CardMedia";
import Button from "@material-ui/core/Button";
import  connect  from "react-redux";
import  makeStyles  from '@material-ui/core/styles';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import ListItemText from '@material-ui/core/ListItemText';
import ListItemAvatar from '@material-ui/core/ListItemAvatar';
import Avatar from '@material-ui/core/Avatar';
import ImageIcon from '@material-ui/icons/Image';
import WorkIcon from '@material-ui/icons/Work';
import BeachAccessIcon from '@material-ui/icons/BeachAccess';
import Divider from '@material-ui/core/Divider';
import  withStyles  from '@material-ui/styles';
const styles = theme => (
    root: 
        background: 'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)',
        border: 0,
        borderRadius: 3,
        boxShadow: '0 3px 5px 2px rgba(255, 105, 135, .3)',
        color: 'white',
        padding: '0 30px',
    ,
);
export class Posts extends Component 
    constructor() 
        super();
    

    componentDidUpdate(prevProps) 

    

    render() 
        const  classes  = this.props;
        return (
            <ul className="list-group list-group-flush">
                this.props.books.map(el => (
                    <List className=classes.root>
                        <ListItem>
                            <ListItemText primary="Title" secondary=el.title />
                        </ListItem>
                        <Divider variant="middle" component="li" />
                        <ListItem>
                            <ListItemText primary="Author" secondary=el.author />
                        </ListItem>
                        <Divider variant="middle" component="li" />
                        <ListItem>
                            <ListItemText primary="Genre" secondary=el.genre />
                        </ListItem>
                        <Divider variant="middle" component="li" />
                        <ListItem>
                            <ListItemText primary="Price" secondary=el.price />
                        </ListItem>
                    </List>
                ))
            </ul>
        );
    


function mapStateToProps(state) 
    return 
        books: state.reducer.booksList
    


export default connect(mapStateToProps)(withStyles(styles)(Posts));

这是列表中的一行:

 <book id="13543">
    <author>Roger, more</author>
    <title>Helping hand club</title>
    <genre>Space</genre>
    <price>234.00</price>
  </book>

【问题讨论】:

iirc 你可以像这样从 Material ui 导入多个组件:import Button, Avatar . . . from @material-ui/core 谢谢,我知道这看起来很乱,因为我学习了 :) 【参考方案1】:

您可以使用CSS 来做到这一点,

const styles = theme => (
    root: 
        //Your existing styles
        margin: 5px 0;
    ,
);

【讨论】:

我想要每行之间有一个空格。我认为您的代码在每个 ListItem 上都有一个空间。我在每一行都有 4 个 ListItem。抱歉,我的 Q 不清楚 您可以为 ListItemText 组件应用相同的样式。发布您的 ListItemText 组件,以便我们提供帮助。 我添加了ListItemText 主要标题类似于“作者”,次要类似于作者的内容是“Roger More” 删除我从styles&lt;ListItem&gt; 建议的样式。 谢谢,这很容易不是:)

以上是关于如何在 React 材料中的列表项之间创建一个空格的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QML 中的 Listview 中保留特定列表项之间的空间

在弹性列表项之间设置空格[重复]

如何用包含空格的字符串替换列表中的项目?

如何更改角度组件的活动材料列表材料列表项颜色?

如何在数组项之间添加空格javascript

如何使用 CSS 防止列表项中的换行符