reactjs - 如何在redux中更新对象中的特定值
问题描述
我的减速机:
function updatePersonDetailsReducer (state = {
updatePersonDetails: {
name: "John",
id: "3ery4",
address: "somewhere on earth"
}
}, action) {
switch (action.type) {
case C.UPDATE_PERSON_DETAILS: {
return {
...state
,updatePersonDetails :action.payload
}
}
default : {}
}
return state
}
我在我的组件中这样调用,
this.props.dispatch(updatePersonDetails({name:Variant.objValue.name,id:Variant.objValue.Id}))
但这似乎创建了一个新数组,而不是updatePersonDetails
在 reducer 中覆盖当前数组 () 中的值。
解决方案
你可以传播你的对象并这样做。
case C.UPDATE_PERSON_DETAILS: {
return {
...state,
updatePersonDetails :
{...state.updatePersonDetails,...action.payload}
}
}
这会将您的旧密钥保留在那里,并且只会更新新添加的密钥。
推荐阅读
- spyne - get_object_as_xml 不适用于多态性
- angular - 使用 Angular HTTP 客户端 - 如何发送所有属性为“默认为空”的 POST http 对象
- c# - 无法从控制面板中删除 wix 引导程序应用程序
- java - 带有正斜杠的 Feign 客户端 URL
- kubernetes - Minikube 隧道不断要求 sudo
- r - 如何将所选列格式化为百分比 - R Kable
- reactjs - 提交时清除 Formik 表单不起作用,我做错了什么?
- vue.js - Vue Good Table 过滤复合列
- sql - SQL 根据其他行的值更新每一行
- css - 字体出现锯齿状,抗锯齿更接近淡紫色而不是灰色