【发布时间】:2021-02-12 01:25:46
【问题描述】:
React 新手。我试图弄清楚如何将所有对象的状态值设置为一个特定对象的值。
这里是 CodeSandbox:https://codesandbox.io/s/blissful-https-1o415
如果您单击Fork 部分中的Apply to All 按钮,Spoon 和Knife 中的数据将更新为与Fork 部分中的数据相同。是否可以将地图中一个对象的数据与另一个对象的数据一起设置?它会发生在地图功能还是其他地方?提前感谢您的帮助。
import React, { useState, useEffect } from "react";
import axios from "axios";
import "./styles.css";
function App() {
const [kitchenItems, setkitchenItems] = useState([]);
useEffect(() => {
axios
.get("./data.json")
.then((response) => setkitchenItems(response.data.kitchen));
}, []);
function applyAll(i) {
const updatedData = kitchenItems.map((item, idx) => {
if (idx === i) {
return {
...item,
size: item.size,
text: item.text,
value: item.value
};
}
return item;
});
setkitchenItems(updatedData);
console.log(kitchenItems);
}
return (
<main>
{kitchenItems.map((item, i) => (
<div className="utensil" key={i}>
<h2>{item.name}</h2>
<ul>
<li>{item.size}</li>
<li>{item.text}</li>
<li>{item.value}</li>
</ul>
<button type="button" name="apply" onClick={() => applyAll(i)}>
Apply to All
</button>
</div>
))}
</main>
);
}
export default App;
【问题讨论】:
标签: javascript reactjs react-hooks