我正在开发一个有一个Canvas的应用程序。 用户可以选择复制此画布以保存其成就。
我的问题是,当他们回到此画布时,是否可以擦除实际状态历史记录并用react-redux中的画布替换它? 是否有一种有效的方法来在Redux中用另一个历史记录替换状态历史记录?
我可以尝试在商店中直接对其进行更改,但这有点脏...
以下是我的代码段:
商店
const store = createStore(combineReducers({
historyCanvas,
canvasDrawing
}));
减速器
var stateCanvasDrawing = {
lines = [{id:1, strokes: [..] }, {id:2, strokes: [..] }]
}
var stateHistoryCanvas = {
history = [{id: history1, state: {present: [..], past: [..], future:[..]}]
我将状态存储在历史记录中 然后,通过单击图标,我可以检索要替换的状态:
var tempState = state.stateHistoryCanvas[0]['state'];
然后我想做类似的事情:
store.getState()['stateCanvasDrawing'] = tempState;
以用我获取的状态替换实际状态。 只需使用redux就可以轻松实现。
但是我正在使用redux-undo,那么如何将存储在“ stateHistoryCanvas”中的整个历史复制到新状态?我不想只复制
还有state['future'] state['past']
希望很清楚,
谢谢大家