使用随机着色的单元格以5×5表格呈现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用随机着色的单元格以5×5表格呈现相关的知识,希望对你有一定的参考价值。

我有一张尺寸为5x5的桌子。我需要将其中一个单元格的颜色随机更改为蓝色。

ReactJS的最佳实践方法是什么?

纯JS中的外观示例:https://codesandbox.io/s/summer-brook-by835?file=/src/index.js

答案

您可以跟踪随机选择的单元格(例如,作为[x,y]索引的数组),然后更新您的状态(在计时器滴答或单击按钮时,这样就可以重新渲染矩阵:

const { useState } = React,
      { render } = ReactDOM,
      rootNode = document.getElementById('root')
      
const App = () => {
  const randomXY = () => [0|Math.random()*5, 0|Math.random()*5],
        [cell, setCell] = useState(randomXY()),
        nextCell = () => setCell(randomXY())
  return (
    <div>
    <div className="wrapper">
      {
        [...Array(5)]
          .map((_,i) => (
            <div className="row">
              {
                [...Array(5)]
                  .map((_,j) => (
                    <div 
                      className={`cell${i == cell[0] && j == cell[1] ? ' blue' : ''}`}
                    />
                  ))
               }
            </div>
          ))
      }
     </div>
     <button onClick={nextCell}>Reset</button>
     </div>
  )
  
}  

render (
  <App />,
  rootNode
)
.wrapper {
  display: flex;
  flex-direction: column;
}

.row {
  display: flex;
  flex-direction: row;
}

.cell {
  width: 20px;
  height: 20px;
  border: 1px solid black;
}

.blue {
  background-color: blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.12.0/umd/react.production.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.11.0/umd/react-dom.production.min.js"></script><div id="root"></div>

以上是关于使用随机着色的单元格以5×5表格呈现的主要内容,如果未能解决你的问题,请参考以下文章

自定义表格单元格以显示图像

是否可以预加载所有 tableview 单元格以启用平滑滚动?

允许触摸表格单元格以取消其他当前触摸

iOS Swift:滑动表格单元格以执行操作(不显示)

调整表格视图单元格以显示 UITextView 和 UIWebView

如何检测 nib 文件表格视图单元格以制作 ReusableCell?