代码之家  ›  专栏  ›  技术社区  ›  Shubham

带垂直线的reactjs-list视图。怎么画这个?

  •  0
  • Shubham  · 技术社区  · 8 年前

    enter image description here

    如上图所示,列表中的每个数字(1、2、3…)都有一条垂直线连接我们如何在react js中实现这一点?

    2 回复  |  直到 8 年前
        1
  •  5
  •   Ori Drori    8 年前

    您可以呈现一个简单的列表( ul li s)使用 Array.map() ,并使用CSS计数器和伪元素进行编号:

    const data = [1, 2, 3, 4, 5, 6];
    
    const Demo = ({ items }) => (
      <ul>
        {
          items.map(key => (
            <li key={key}>item{key}</li>
          ))
        }
      </ul>
    );
    
    ReactDOM.render(
      <Demo items={data} />,
      demo
    );
      
    ul {
      counter-reset: list;
      border-left: 2px solid lightgrey;
      margin: 1em;
      padding: 0;
    }
    
    ul li {
      list-style: none;
      margin: 0 0 0.5em 0;
      padding: 0;
    }
    
    ul li:before {
      display: inline-block;
      width: 1.2em;
      height: 1.2em;
      margin: 0 0.5em 0 -0.65em;
      border-radius: 50%;  
      content: counter(list);
      text-align: center;
      background: lightgrey;
      counter-increment: list;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
    
    <div id="demo"></div>
        2
  •  2
  •   Azamat Zorkanov    8 年前

    您可以通过list进行映射,并使用index作为 地图 功能: https://stackoverflow.com/a/38364482/5709697

    但索引从0开始,所以可以将1添加到索引。

    圆本身和线,连接它们是css工作