reactjs - ReactJS:使用不同的值更新状态数组的每个元素
问题描述
对于 React JS 中的以下情况,我需要一点帮助:我的一个组件中有一个状态,它是一个由 3 个 json 对象组成的数组,如下所示:
const [data, setData] = useState([ {name:'a'}, {name:'b'}, {name:'c'}])
而且我还有一个包含 3 个随机名称的数组:
const randomArray = ['d', 'e', 'f']
我想做一个方法,它将作为参数randomArray
并像这样更新新状态:
data = [ {name:'d'}, {name:'e'}, {name:'f'}]
有任何想法吗?
解决方案
您可以使用地图功能。它从回调函数返回一个新数组。您可以像这样返回名称属性;
import { useEffect, useState } from "react";
export default function App() {
const [data, setData] = useState([
{ name: "a" },
{ name: "b" },
{ name: "c" }
]);
const randomArray = ["d", "e", "f"];
const setNewValues = () => {
setData(randomArray.map(name=> ({ name})));
};
useEffect(() => {
console.log(data);
}, [data]);
return (
<div className="App">
<button onClick={setNewValues}>Set Data </button>
</div>
);
}
推荐阅读
- celery - 本地主机上的 Apache 气流芹菜工人
- c# - 如何在 C# 中使用 MongoDB Compass 生成的管道来运行聚合管道
- c - icmp_hdr 在 CentOS 6 内核上是错误的
- amazon-dynamodb - 如果我不在前端请求,appsync 是否仍会请求关系
- swift - 如何在 UITableViewCell 类中使用为 segue 做准备
- python - 将 N-dim 数组广播到 (N+1)-dim 数组并在除 1 dim 之外的所有数组上求和
- c - 编译后的 c 可执行文件如何知道如何表示特定内存地址处的一系列位?
- python-3.x - 将 Prometheus 与 Connexion 一起使用 - ValueError:CollectorRegistry 中的时间序列重复
- gradle - 如何将子模块转换为 jar 并将其用作依赖项而不是项目本身
- algorithm - 理解大 O 表示法 O(2^N)