reactjs - React.useState 中的对象数组如何更新?
问题描述
const [products, setProducts] = useState([
{
price: 999,
title: "Watch",
qty: 1,
id: 1,
img: "https://media.istockphoto.com/photos/military-style-watch-picture-id650233226?s=612x612",
},
{
price: 20000,
title: "Samsung F42",
qty: 1,
id: 2,
img: "https://images.samsung.com/is/image/samsung/p6pim/in/sm-e426bzahins/gallery/in-galaxy-f42-5g-8gb-ram-sm-e426bzahins-514504593?$684_547_PNG$",
}]);
我想通过 onClick 更新数量并通过组件 2 将此数据从组件 1 传递到组件 3。那么,setProducts 更新数量的语句将是什么。
解决方案
将此函数与参数 Id 作为回调传递给 onClick
function increaseQuantity(Id){
let res = products.map((obj) => obj.id === Id ? {...obj,qty:obj.qty+ 1} : obj)
setProducts(res);
}
例子 -
<button onClick={() => increaseQuantity(item.id)}></button>
推荐阅读
- salesforce - 在 SLDS 中,为什么闪电数据表的状态栏覆盖了日期编辑面板?
- linux - 在“menuconfig”中找不到“系统类型”
- fuzzing - BooFuzz UnicodeDecodeError
- python - 加速多线程下载
- python - Matplotlib 添加默认水印
- php - 在php中在图像上添加文本的字体路径问题
- typescript - 如何绑定 Material-Multi-Select 的值
- python - Django Login 将进行身份验证,但重定向仅在远程服务器上失败
- android - 例如,保存设置文件以更改背景主题的好方法是什么?
- javascript - 如何在javascript和javascript之间做ajax