javascript - 有没有更好的方法来遍历 React 渲染部分中的数据?
问题描述
我正在寻找循环数据、调用函数并返回结果,以便它们可以发布在 React 的渲染部分。我是该语言的新手,并试图在 React 主教程中实现一个额外的功能。
我正在尝试使渲染部分如下所示:
<div className="board-row">
{this.renderSquare(0)}
{this.renderSquare(1)}
{this.renderSquare(2)}
</div>
<div className="board-row">
{this.renderSquare(3)}
{this.renderSquare(4)}
{this.renderSquare(5)}
</div>
<div className="board-row">
{this.renderSquare(6)}
{this.renderSquare(7)}
{this.renderSquare(8)}
</div>
任务是使用两个循环来创建上述结构。这是我的代码:
const board = [0, 1, 2].map((num) => {
const row = Array(3);
for (let i of [0, 1, 2]) {
row[i] = this.renderSquare(num*3 + i);
}
const board_row = row.map(num2 => {
return (
num2
)
})
return (
<div className="board-row">
{board_row}
</div>
);
});
我认为该board_row
变量是浪费的,因为它执行整个映射操作只是为了正确格式化该行。当我尝试将 for 循环移动到 map 操作中时,我找不到传递num
给 map 操作的方法。
const board = [0, 1, 2].map((num) => {
const board_row = [0, 1, 2].map(num2 => {
// How do I get num here?
return this.renderSquare(num*3 + num2);
})
return (
<div className="board-row">
{board_row}
</div>
);
});
我该如何正确地做到这一点?
解决方案
您可以这样做,因为您不能在下一次迭代之前打开标签
return (
<div>
{
[0,3,6].map(num => (
<div className="board-row">
{
Array(3).fill().map(
(_, index) => this.renderSquare(index + num)
)
}
</div>
))
}
</div>
);
推荐阅读
- swift - 领域查询以计算唯一条目的数量
- python - Python 诅咒 ERR 管道
- java - android studio 中的错误请解决已配置的依赖功能但未设置包 ID
- javascript - 计算 GeoJSON LineString 覆盖的面积和指定的线重
- javascript - TypeError 不是 Javascript 原型的递归方法中的函数
- docker - 使用 docker 时 Heroku 容器释放错误
- discord - Discord.js 欢迎命令
- python - TypeError:“方法”和“方法”的实例之间不支持“>”
- c# - 位未按预期打开
- c# - 在c#中找到随机数组中的第一个奇数