在 React 中使用 forEach() 方法
forEach()
方法可用于在 React 中的 JSX 代码之外迭代数组。 如果我们需要遍历数组并直接在 JSX 代码中呈现其元素,请改用 map()
方法。
export default function App() {
const employees = [
{id: 1, name: 'Jiyik', country: 'China'},
{id: 2, name: 'Fql', country: 'China'},
{id: 3, name: 'Carl', country: 'Canada'},
];
const results = [];
// 👇️ 可以在 JSX 代码之外使用 forEach
// 如果需要为每个数组元素调用一次函数
employees.forEach((employee, index) => {
results.push(
<div key={index}>
<h2>name: {employee.name}</h2>
<h2>country: {employee.country}</h2>
<hr />
</div>,
);
});
// 👇️ 或直接在 JSX 代码中使用 map()
return (
<div>
{employees.map((employee, index) => {
return (
<div key={index}>
<h2>name: {employee.name}</h2>
<h2>country: {employee.country}</h2>
<hr />
</div>
);
})}
<hr />
<hr />
<hr />
{results}
</div>
);
}
当我们需要为数组中的每个元素调用函数时,可以使用 Array.forEach
方法。
但是,
forEach()
不能用于直接在 JSX 代码中迭代数组。
forEach()
方法使用数组中的每个元素调用提供的函数,但返回未定义。
直接在我们的 JSX 代码中使用它是没有意义的,因为我们需要返回 JSX 元素而不是 undefined。
我们可以使用 forEach() 方法:
- 遍历一个数组。
- 将 JSX 元素推送到新数组中。
- 渲染 JSX 元素。
export default function App() {
const employees = [
{id: 1, name: 'Jiyik', country: 'China'},
{id: 2, name: 'Fql', country: 'China'},
{id: 3, name: 'Carl', country: 'Canada'},
];
const results = [];
employees.forEach((employee, index) => {
results.push(
<div key={index}>
<h2>name: {employee.name}</h2>
<h2>country: {employee.country}</h2>
<hr />
</div>,
);
});
return <div>{results}</div>;
}
我们不是直接渲染对象的值,而是将每个对象的 JSX 标记推送到结果数组中。
我们可以直接在
JSX
代码中渲染结果数组,因为它是JSX
元素的数组
要遍历数组并直接在 JSX 代码中呈现其元素,请使用 Array.map
方法。
export default function App() {
const employees = ['Jiyik', 'Fql', 'Carl'];
return (
<div>
{employees.map((employee, index) => {
return (
<div key={index}>
<h2>name: {employee}</h2>
<hr />
</div>
);
})}
</div>
);
}
我们传递给 Array.map
方法的函数会为数组中的每个元素调用。
在每次迭代中,我们将最外层元素的
key
prop设置为唯一值并渲染该元素。
你也可以像使用 forEach()
方法一样使用 for...of
循环。
export default function App() {
const employees = [
{id: 1, name: 'Jiyik', country: 'China'},
{id: 2, name: 'Fql', country: 'China'},
{id: 3, name: 'Carl', country: 'Canada'},
];
const results = [];
for (const employee of employees) {
results.push(
<div key={employee.id}>
<h2>name: {employee.name}</h2>
<h2>country: {employee.country}</h2>
<hr />
</div>,
);
}
return <div>{results}</div>;
}
for...of
循环也可用于遍历对象数组。
当必须使用 break 关键字过早退出循环时,我们将使用
for...of
而不是forEach()
方法。
break 关键字不能在 forEach()
方法中使用,但在 for...of
循环中受支持。
相关文章
PHP 的 Warning Invalid Argument Supplied for foreach() 解决
发布时间:2023/03/28 浏览次数:90 分类:PHP
-
本篇文章介绍如何修复PHP 中的 Warning Invalid Argument Supplied for foreach()
Node.js 与 React JS 的比较
发布时间:2023/03/27 浏览次数:137 分类:Node.js
-
本文比较和对比了两种编程语言,Node.js 和 React。React 和 Node.js 都是开源 JavaScript 库的示例。 这些库用于构建用户界面和服务器端应用程序。
在 TypeScript 中 React UseState 钩子类型
发布时间:2023/03/19 浏览次数:200 分类:TypeScript
-
本教程演示了如何在 TypeScript 中使用 React useState hook。
TypeScript 中的 React 事件类型
发布时间:2023/03/19 浏览次数:162 分类:TypeScript
-
本教程演示了如何在 TypeScript 中为 React 事件添加类型支持。
在 React 中循环遍历对象数组
发布时间:2023/03/18 浏览次数:124 分类:React
-
在 React 中循环对象数组: 使用 map() 方法迭代数组。 我们传递给 map() 的函数会为数组中的每个元素调用。 该方法返回一个新数组,其中包含传入函数的结果。 export default function App (
获取 React 中元素的类名
发布时间:2023/03/18 浏览次数:162 分类:React
-
在 React 中使用 event.target 获取元素的类名 获取元素的类名: 将元素上的 onClick 属性设置为事件处理函数。 访问元素的类名作为 event.currentTarget.className 。 export default function App () { cons
如何将 key 属性添加到 React 片段
发布时间:2023/03/18 浏览次数:152 分类:React
-
使用更详细的片段语法将 key 属性添加到 React 片段,例如 React.Fragment key={key} 。 更冗长的语法实现了相同的结果对元素列表进行分组,而不向 DOM 添加额外的节点。 import React from react
使用 forEach() 更新 MongoDB Shell 中的数组字段
发布时间:2023/03/18 浏览次数:77 分类:MongoDB
-
本教程演示了如何使用 forEach() 更新 MongoDB shell 中的数组字段。
如何在 React 中删除事件监听器
发布时间:2023/03/15 浏览次数:203 分类:React
-
在 React 中删除事件监听器: 在 useEffect 挂钩中添加事件侦听器。 从 useEffect 挂钩返回一个函数。 当组件卸载时,使用 removeEventListener 方法移除事件监听器。 import {useRef, useEffect} from r