如何在 React 的地图中使用 for 循环 [重复]

Posted

技术标签:

【中文标题】如何在 React 的地图中使用 for 循环 [重复]【英文标题】:How to use for-loop in map in React [duplicate] 【发布时间】:2021-04-06 00:34:53 【问题描述】:

您能帮帮我吗,如何在此代码中添加“for”循环 - 目标是仅显示来自所有 cmets 的 3 条评论,这些评论是使用 .map 扫描的。

<div>   data.statement.comments.reverse().map((comment) => (
           
          <div key=comment.id style= marginBottom: 15 >
             <strong>
                comment.user.firstName comment.user.lastName
              </strong>
              <small className=Classes.TEXT_MUTED style= marginLeft: 10 >
                formatCreatedAt(comment.createdAt)
              </small>
            
                        
            </div>
      ))

     
        </div>

我试图把它放在这里 - 但我发现它在 JSX 中不起作用。

 <div>   data.statement.comments.reverse().map((comment) => (
           //for Loop
          <div key=comment.id style= marginBottom: 15 >
             <strong>
                comment.user.firstName comment.user.lastName
              </strong>
              <small className=Classes.TEXT_MUTED style= marginLeft: 10 >
                formatCreatedAt(comment.createdAt)
              </small>
            
                        
            </div>
      ))

     
        </div>

或者您会建议使用其他方法来解决任务吗?

【问题讨论】:

值得一读 - ***.com/questions/46908480/… 【参考方案1】:

你可以使用这个,不需要for loop

data.statement.comments.reverse().slice(0,3).map((comment)...

在此处添加slice 不会改变原来的数组,它会创建一个新数组,它只包含3 个元素。 0 是开始切片的位置,3 是您想要的项目数。

要回答您的问题为什么 for 在那里不起作用,请尝试此代码。

let a = [1,2,3,4];
let c = a.map(el => 
  console.log(el);
  return el + 1;
)
// c = [2, 3, 4, 5];

正如您在此处看到的,Map 返回一个新数组,for 不返回(for 不是函数),如果您仔细查看您的 React 代码,map 将只返回 JSX,for 不能这样做,因为它不是一个函数。

这是另一个例子

[1,2,3].map(el => <p> el </p>)
// is equale to
// <p>1</p><p>2</p><p>3</p>
// which is a valid JSX

所以 中的任何东西都会被执行并被它返回的东西所取代,map 可以返回,但是因为它不是函数,所以不能返回,经验法则:你可以使用什么返回,如果你必须使用for,在函数中使用它并从你的JSX调用它

【讨论】:

以上是关于如何在 React 的地图中使用 for 循环 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 React useRef 挂钩删除地图中的类

地图 React.js 中的 for 循环

如何在 React Yandex 地图中使用图像作为地标?

React - 组件不会在 foreach 循环中呈现?

如何使用 React Native 获取默认地图?

如何缩小 React-Native 地图