javascript - 如何在没有可用数组的情况下在反应中创建多个元素?
问题描述
我正在创建一个井字游戏,所以我需要创建 9 个空方格,我有 aul
和 9 li
s 每个代表游戏中的一个方格,问题是我没有数组可以循环并创建li
s 作为反应中的传统
<ul className="squares">
someArr.map((el, i) => {
return <Square props here/>
})
</ul>
const Square = (props) => {
return <li {...props}></li>
}
现在我不得不li
手动创建所有的 s 并将道具传递给每个li
,这看起来太丑了!
<ul>
<li className="square" ></li>
<li className="square" ></li>
<li className="square" ></li>
<li className="square" ></li>
<li className="square" ></li>
<li className="square" ></li>
<li className="square" ></li>
<li className="square" ></li>
<li className="square" ></li>
</ul>
即使没有数组来创建多个元素,有没有办法实现可重用性?
解决方案
您可以简单地创建一个长度为空的数组,9
然后在其上映射,如下所示:
[...Array(9)].map((_, i) => <li className="square" key={i}></li>)
演示:
const Square = (props) => <li className="square"></li>
class App extends React.Component {
render() {
return (
<ul>
{[...Array(9)].map((_, i) => <Square key={i} />)}
</ul>
)
}
}
ReactDOM.render(<App />, document.getElementById("app"));
.square{ width:50px;height:50px;background:skyblue; float:left; margin:5px;list-style-type:none;}
<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="app"></div>
推荐阅读
- php - 为什么这会返回“未定义索引”错误?
- r - 升级到 OS X Catalina 后无法在 conda 中安装 R-package gdtools 或 ggiraph
- vba - 如何将单元格中的值存储到变量中
- github - 如何重写 URL 以在 github 页面上删除 pdf 的文件扩展名?
- frontend - 编码约定:将后端与前端标签匹配
- c# - 在 .NET Core 中间件中的相对 OData url 上手动运行模型绑定
- python - 一个收集谷歌搜索结果的python脚本
- sql - 在未达到事务日志限制的情况下更改表中的数据类型
- apache-kafka - 获取元数据 kafka {test=LEADER_NOT_AVAILABLE} 时出错?
- sparql - 我可以在本地对 Wikidata 转储运行 SPARQL 查询吗?