我在Redux上苦苦挣扎。
尽管我已根据教程设法将一些非常简单的状态迁移到Redux,但我发现很难处理更复杂的状态。尝试过研究,但答案却千差万别,令人困惑。
据我所知,setState等同于Redux的动作,应该通过使用getState()然后bt dispatch()将动作传递给reducer来实现...
如果是,那么如何将以下示例正确转换为Redux?
让我们说一下切换一些嵌套的音乐状态元素的布尔值:
this.setState(prevState => {
const updatedMusic = prevState.music;
const elToUpdate = updatedMusic.musicStateItemList[3].favClicked;
elToUpdate = !elToUpdate;
return {
music: updatedMusic
};
});
答案 0 :(得分:0)
在减速器中状态已通过
function counter(state = 0, action) {
switch (action.type) {
case 'INCREMENT':
return state + 1
case 'DECREMENT':
return state - 1
default:
return state
}
}
let store = createStore(counter)
答案 1 :(得分:0)
与Redux中的示例代码等效的内容如下
const updatedMusic = state.music;
const elToUpdate = updatedMusic.musicStateItemList[3].favClicked;
updatedMusic.musicStateItemList[3].favClicked = !elToUpdate;
return {
...state,
music: [...updatedMusic]
};
这是关于变异状态。如果需要更高级的功能,可以使用不变性帮助程序。