javascript - 在 React JS useState 中再次更新相同状态时如何保持对象值的更新状态数组?
问题描述
我正在使用 React 功能组件,显然,useState 挂钩有助于创建和更新状态值。我通常在函数中编写更新功能来更新对象数组。当我更新时,它会更新值,当我再次调用相同的函数来更新其他一些值时,它会正确更新,但先前更新的值又回到旧值并且它不保留更新后的值。
const updateTranslatedResponse = (segmentId, key, value) => {
setTranslatedResponse(
translatedResponse.map(
el => el.segment_id == segmentId ? { ...el, [key]: value }: el
)
)
}
解决方案
prev
在 useState 挂钩中使用参数。useState
钩子是异步的。
const updateTranslatedResponse = (segmentId, key, value) => {
setTranslatedResponse( prevTranslatedResponse =>
prevTranslatedResponse.map(
el => el.segment_id == segmentId ? { ...el, [key]: value }: el
)
)
}
推荐阅读
- doxygen - 仅更改特定文件的配置选项
- c# - MVC 5 / .Net 框架与 Unity IoC - 注册 ILogger
- xcode - 是否可以为 Xcode 文件模板使用自定义图标?
- mysql - MySql:嵌套表可能吗?
- office365 - Power BI 导出到 PDF 自动化
- powershell - 获取内容拆分,但保留前导零并仅在 powershell 中按第一个“_”拆分
- python - Celery ConnectionResetError:[Errno 104] 对等方重置连接
- datagrip - 与 [主机名] 的连接失败。主机 [主机名] 未知。[08001] 连接尝试失败
- swift - 在协议中使用 self in function
- haskell - 在 Haskell 中创建新的有界数数据类型