RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 947126
Accepted
stiv
stiv
Asked:2020-02-20 19:39:33 +0000 UTC2020-02-20 19:39:33 +0000 UTC 2020-02-20 19:39:33 +0000 UTC

如何在多行中显示数据

  • 772

有这样的输入:

const toothData = [
    //1row topleft
    {
        id: 11,
    },
    {
        id: 12,
    },
    {
        id: 13,
    },
    {
        id: 14,
    },
    {
        id: 15,
    },
    {
        id: 16,
    },
    {
        id: 17,
    },
    {
        id: 18,
    },
    // 2row topright
    {
        id: 21,
    },
    {
        id: 22,
    },
    {
        id: 23,
    },
    {
        id: 24,
    },
    {
        id: 25,
    },
    {
        id: 26,
    },
    {
        id: 27,
    },
    {
        id: 28,
    },
    // 3row bottom-left
    {
        id: 31,
    },
    {
        id: 32,
    },
    {
        id: 33,
    },
    {
        id: 34,
    },
    {
        id: 35,
    },
    {
        id: 36,
    },
    {
        id: 37,
    },
    {
        id: 38,
    },
    // 4row bottom-right
    {
        id: 41,
    },
    {
        id: 42,
    },
    {
        id: 43,
    },
    {
        id: 44,
    },
    {
        id: 45,
    },
    {
        id: 46,
    },
    {
        id: 47,
    },
    {
        id: 48,
    },

]

然后将其输出到这样的模板

class ToothList extends React.Component {
    render() {
        const toothTemplate = this.props.data.map(function (item, index) {
            return (
                <div className="tooth-item" key={index}>
                    <IconTooth/>
                    <span>
                        {item.id}
                    </span>
                </div>
            )
        })

        return (
            <div className="tooth-list">
                {toothTemplate}
            </div>
        )
    }
}

如何显示这个包含在一个块中的 8 个项目的数组(它会变成 4 行)?

javascript
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Сергей Петрашко
    2020-02-20T20:04:12Z2020-02-20T20:04:12Z

    作为一个选项 - 您可以在每八个元素之后添加一个换行符,或者您想要的任何内容而不是 br :

         class ToothList extends React.Component {
            render() {
                const toothTemplate = this.props.data.map(function (item, index) {
                    return (
                     <React.Fragment>
                        <div className="tooth-item" key={index}>
                            <IconTooth/>
                            <span>
                                {item.id}
                            </span>
                        </div>
                    {index%8===7 ? (<br/>) : null}
                    </React.Fragment>)
                    })
                return (
    
                    <div className="tooth-list">
                        {toothTemplate}
                    </div>             
                )
            }
        }
    
    • 1
  2. Best Answer
    Alexandr Tovmach
    2020-02-20T22:55:57Z2020-02-20T22:55:57Z

    const toothData = [
      //1row topleft
      {
        id: 11
      },
      {
        id: 12
      },
      {
        id: 13
      },
      {
        id: 14
      },
      {
        id: 15
      },
      {
        id: 16
      },
      {
        id: 17
      },
      {
        id: 18
      },
      // 2row topright
      {
        id: 21
      },
      {
        id: 22
      },
      {
        id: 23
      },
      {
        id: 24
      },
      {
        id: 25
      },
      {
        id: 26
      },
      {
        id: 27
      },
      {
        id: 28
      },
      // 3row bottom-left
      {
        id: 31
      },
      {
        id: 32
      },
      {
        id: 33
      },
      {
        id: 34
      },
      {
        id: 35
      },
      {
        id: 36
      },
      {
        id: 37
      },
      {
        id: 38
      },
      // 4row bottom-right
      {
        id: 41
      },
      {
        id: 42
      },
      {
        id: 43
      },
      {
        id: 44
      },
      {
        id: 45
      },
      {
        id: 46
      },
      {
        id: 47
      },
      {
        id: 48
      }
    ];
    
    class ToothList extends React.Component {
      render() {
        const { data } = this.props;
        const rows = data.reduce(
          (prev, el, i) => {
            const subIdx = Math.floor(i / 8);
            prev[subIdx] = [...(prev[subIdx] || []), el];
            return prev;
          },
          []
        );
        return (
          <div className="tooth-list">
            {rows.map((row, i) => (
              <div key={`row-${i}`} className="tooth-row">
                {row.map((item, k) => (
                  <div className="tooth-item" key={`row-item-${k}`}>
                    {/* <IconTooth/> */}
                    <span>{item.id}</span>
                  </div>
                ))}
              </div>
            ))}
          </div>
        );
      }
    }
    
    class App extends React.Component {
      render() {
        return <ToothList data={toothData} />;
      }
    }
    
    ReactDOM.render(<App />, document.getElementById('root'));
    .tooth-row {
      display: flex;
      margin: 1em;
      border-radius: 5px;
      background-color: lightskyblue;
    }
    
    .tooth-row > .tooth-item {
      margin: 0.5em;
      padding: 0.5em;
      border-radius: 5px;
      background-color: lavender;
    }
    <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>
    <div id="root"></div>

    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    根据浏览器窗口的大小调整背景图案的大小

    • 2 个回答
  • Marko Smith

    理解for循环的执行逻辑

    • 1 个回答
  • Marko Smith

    复制动态数组时出错(C++)

    • 1 个回答
  • Marko Smith

    Or and If,elif,else 构造[重复]

    • 1 个回答
  • Marko Smith

    如何构建支持 x64 的 APK

    • 1 个回答
  • Marko Smith

    如何使按钮的输入宽度?

    • 2 个回答
  • Marko Smith

    如何显示对象变量的名称?

    • 3 个回答
  • Marko Smith

    如何循环一个函数?

    • 1 个回答
  • Marko Smith

    LOWORD 宏有什么作用?

    • 2 个回答
  • Marko Smith

    从字符串的开头删除直到并包括一个字符

    • 2 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5