Hello! 欢迎来到小浪资源网!



React中如何为map循环生成的div元素添加行号?


React中如何为map循环生成的div元素添加行号?

如何为map循环创建的div添加行号

在react组件中,经常需要基于传入的props数据创建多个小方格。比如:

<div id="container"> { itemdata.map((item, index) => (           <div key={index} style={{ ... }} > </div>         )) } </div>

效果如下:

在此基础上,我们想要给container div添加行号,就像编辑器编辑代码一样,前面显示行号。要实现这一需求,可以采用以下方法:

将左侧的索引设置为absolute,右侧的方块设置为relative,两者的父元素设置为position: relative 且 overflow: hidden;

.app {   overflow: hidden;   position: relative; }  .left-box {   position: absolute;   left: 0;   top: 0;      width: 19px;   overflow: hidden; }  .right-box {   margin-left: 19px; }
<div className="App">       <div className="left-box">         {indexData.map((item, index) => (           <div             key={index}             style={{               fontSize: "9px",               width: "19px",               height: "20px",               margin: "2px",             }}           >             {index}           </div>         ))}       </div>       <div className="right-box">         {itemData.map((item, index) => (           <div             key={index}             style={{               display: "inline-block",               width: "9px",               height: "9px",               margin: "2px",               backgroundColor: item.selected ? "green" : "lightgreen",             }}           ></div>         ))}       </div>     </div>

相关阅读