Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React Redux,替换状态历史记录_Reactjs_Redux - Fatal编程技术网

Reactjs React Redux,替换状态历史记录

Reactjs React Redux,替换状态历史记录,reactjs,redux,Reactjs,Redux,我正在开发一个应用程序,其中我有一个画布。 用户可以选择复制此画布以保存其成果 我的问题是,当他们回到这个画布时,是否有可能删除实际的状态历史,并用react redux中的画布历史替换它? 在redux中,有没有一种有效的方法可以将一个状态历史替换为另一个状态历史 我可以直接在店里换,但是有点脏 以下是我的一些代码片段: 商店 const store = createStore(combineReducers({ historyCanvas, canvasDrawi

我正在开发一个应用程序,其中我有一个画布。 用户可以选择复制此画布以保存其成果

我的问题是,当他们回到这个画布时,是否有可能删除实际的状态历史,并用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:[..]}] 
我将状态存储在historyCanvas还原器中: 然后,通过单击图标,我可以检索我要替换的状态:

var tempState = state.stateHistoryCanvas[0]['state'];
然后我想做一些类似的事情:

store.getState()['stateCanvasDrawing'] = tempState;
以用我检索的状态替换实际状态。 这将是简单的,只是重复

但是我使用的是redux undo,那么如何将存储在“stateHistoryCanvas”中的整个历史复制到新的状态呢?我不想只复制 还有
状态['future']状态['pass']

希望这是清楚的


谢谢大家,

是的,您的减速机可能会返回一个全新的状态。你能在代码的相关部分发布一些代码片段吗?讨论实际代码比讨论理论更容易。正如前面的评论所指出的,我们确实需要看到一些代码来正确回答,但我认为一般来说,如果您使用Redux,您应该将状态保存在存储中,并尽可能从那里访问它。它可能很烦人,但在规模上要强大得多。如果你的应用程序将非常小,你可能想考虑根本不使用ReDux。显然你只需要返回另一个状态到你的减速机,但是你应该真的发布你的代码,这样我们就可以更好地讨论它了!麦克坎布里奇,我已经更新了我的答案。希望你能理解