如何在Redux中更新特定数组项内的单个值
我遇到的问题是,状态的重新呈现会导致ui问题,并建议仅更新reducer内的特定值以减少页面上的重新呈现量。
这是我的状态的例子
{ name: "some name",
subtitle: "some subtitle",
contents: [
{title: "some title", text: "some text"},
{title: "some other title", text: "some other text"}
]
}
我目前正在这样更新
case 'SOME_ACTION': return { ...state, contents: action.payload }
其中action.payload
是包含新值的整个数组。但是现在我实际上只需要更新内容数组中第二个项目的文本,这样的事情就行不通了
case 'SOME_ACTION': return { ...state, contents[1].text: action.payload }
action.payload
现在我需要更新的文本在哪里。
回答:
您可以使用React不变性助手
import update from 'react-addons-update';// ...
case 'SOME_ACTION':
return update(state, {
contents: {
1: {
text: {$set: action.payload}
}
}
});
虽然我想您可能会做更多这样的事情?
case 'SOME_ACTION': return update(state, {
contents: {
[action.id]: {
text: {$set: action.payload}
}
}
});
以上是 如何在Redux中更新特定数组项内的单个值 的全部内容, 来源链接: utcz.com/qa/414556.html