React Native编程撤消/重做

时间:2016-03-04 12:47:18

标签: ios react-native undo

我想知道undo和redo编程的基本原理是什么?特别是在React Native中。我是一名初学程序员,我无法弄清楚如何对程序进行编程,因为它只是反转任何东西。

例如,使用单人纸牌游戏,您可以将卡片放在其中一个卡片行的一端,只需在源堆中翻转一张卡片,或者将卡片中的卡片放在一堆卡片上。这些都很容易编程,但你如何实现一个简单的撤消'按钮可以反转任何这些动作?并且可能无限制。

1 个答案:

答案 0 :(得分:0)

如何维护状态的基本示例

http://redux.js.org/docs/recipes/ImplementingUndoHistory.html

let state = {
  past:[],
  present: 0,
  future: [],
};

const canUndo = state.past.length > 0;
const canRedo = state.future.length > 0;

const updateState = function(value) {
  state.past = state.present;
  state.present = value;
};

const undo = function() {
  state.future.push(state.present);
  state.present = state.past.pop();
};

const redo = function() {
  state.past.push(state.present);
  state.present = state.present.pop();
};

redux的插件,可以重做/撤消

https://www.npmjs.com/package/redux-undo