还原redux商店中的更改

时间:2017-01-31 03:03:41

标签: javascript reactjs ecmascript-6 redux state

我有一个简单的问题。

现在在我的应用程序Redux中,我有一个组合存储,当我获取数据时,它被设置为状态的一部分。

然后,我有一个React编辑器,通过Redux管理状态。 当用户单击“编辑”时,所有字段都可以编辑。他可以乱七八糟,然后点击放弃'丢弃'按钮并返回到获取数据的初始状态。

我正在尝试对原始提取的数据进行深度复制(在用户修改它之后),但之后我在我的商店中获得了正确的数据,但是视图仍然显示了modyfined数据(它通过te react-redux连接)到商店)。

所以,我的问题是,如何以正确的方式显示视图将显示此数据。 下面是我的编辑器缩减器。

case editorActions.DISCARD_CHANGES:
  return {
    ...state,
    editing: false,
    data: {
      ...state.data,
      ...mapGistToData(payload)
    }
  };

我传递给它原始数据:

onDiscardClick={discardChanges.bind(null, orginalGist)}

来自

orginal: deepcopy(payload),

1 个答案:

答案 0 :(得分:1)

假设数据存储在"数据"在该州。

通过在初始设置期间从deepcopy传递原始数据来调用actionCreator。

discardChange(original);

ActionCreator:

export function discardChange(originalData) {
  return {
    type: DISCARD_CHANGES,
    payload: originalData
  }
}

减速机:

case editorActions.DISCARD_CHANGES:
  return {
    ...state,
    editing: false,
    data: editorActions.payload
  };