我已经尝试过控制台记录“ ANSWER_UPDATE_SUCCESS”的返回结果,结果是正确的,但是由于某种原因,它不会更新状态?
减速器:
export function project(state = [], action){
switch(action.type){
case 'PROJECT_FETCH_SUCCESS':
return action.project;
case 'ANSWER_UPDATE_SUCCESS':
{
return updateItemInArray(state, action.answer.questionId, action.answer.answerId, action.answer.answerValue);
}
default:
return state
}
}
reducer中帮助我导航和更新嵌套数据的功能:
function updateObject(oldObject, newValues) {
return Object.assign({}, oldObject, newValues);
}
function updateItemInArray(array, questionId, answerId, newValue) {
console.log(newValue)
return array.map(item => {
if(item.id != questionId) {
return item;
} else {
return {...item, answers: item.answers.map(answer => {
if(answer.id != answerId) {
return answer;
} else {
return updateObject(answer, { value : newValue})
}
})
}}
})
我想更新答案中的值,并且updateItemInArray的返回正确返回。.我发现这很奇怪,有人可以看到问题吗?
非常感谢您的回答!