我可以成功完成以下操作,使我可以使用用户ID作为键来构建配置文件的对象-我喜欢这种结构,因为它有助于应用程序的其他部分
function profilesMembersResponseConcat(members, newMember) {
members[newMember.userid] = newMember
return members
}
[C.PROFILES_MEMBERS_RESPONSE]: (state, { payload }) => ({
...state,
profilesMembersResponse: profilesMembersResponseConcat(state.profilesMembersResponse, payload)
}),
问题:但是,有没有一种方法可以不需要功能。我在下面尝试过,但收到错误消息:“ 箭头功能不应返回赋值。”
[C.PROFILES_MEMBERS_RESPONSE]: (state, { payload }) => ({
...state,
profilesMembersResponse: state.profilesMembersResponse[payload.userid] = payload
}),
答案 0 :(得分:1)
您的两种解决方案都是对对象进行突变。您将需要将作业更改为更多类似的内容:
[C.PROFILES_MEMBERS_RESPONSE]: (state, { payload }) => ({
...state,
profilesMembersResponse: ({...state.profilesMembersResponse, [payload.userid]:payload})
}),