Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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 我们可以通过任何方式从旧操作访问redux状态值_Reactjs_React Redux - Fatal编程技术网

Reactjs 我们可以通过任何方式从旧操作访问redux状态值

Reactjs 我们可以通过任何方式从旧操作访问redux状态值,reactjs,react-redux,Reactjs,React Redux,我想检查是否有一种方法可以从不同的操作中访问旧的状态值,因为reducer总是返回新的状态 例如,有3个操作,每个操作中都创建了一个新状态。 是否有一种方法可以从第三个操作访问第一个操作状态对象 基本上,我的要求是将状态重置为生命周期中不同操作的状态值。您试图实现的是Redux中的时间旅行,这是Redux提供的核心功能之一 请看Dan的视频,其中有详细说明 要实现您正在尝试的功能,您需要在应用程序中维护多个状态 让我们把它们称为过去、现在和未来 过去:触发操作1之前的应用程序 当前:应用程序的

我想检查是否有一种方法可以从不同的操作中访问旧的状态值,因为reducer总是返回新的状态

例如,有3个操作,每个操作中都创建了一个新状态。 是否有一种方法可以从第三个操作访问第一个操作状态对象


基本上,我的要求是将状态重置为生命周期中不同操作的状态值。

您试图实现的是Redux中的时间旅行,这是Redux提供的核心功能之一

请看Dan的视频,其中有详细说明

要实现您正在尝试的功能,您需要在应用程序中维护多个状态

让我们把它们称为过去、现在和未来

  • 过去:触发操作1之前的应用程序
  • 当前:应用程序的当前状态
  • Future:触发操作2后应用程序的未来状态
所以你的状态基本上是这样的:

ApplicationState= {
  past: {},
  present: {},
  future: {},
}
现在,如果你想回到过去的时间(相当于访问过去的状态)

switch(action.type){
  case "ACTIONTYPE_1":
   return {
     ...state,
     past: {...state},
     present: //implemention of logic
   }
}

我找到了一本很好的读物,介绍了你想要达到的目标。请看一看。

作为一个选项,您可能会考虑使用Immutable.JS并在更新之前存储状态。我相信您只需存储“旧”状态的副本即可