【发布时间】:2016-06-18 05:08:12
【问题描述】:
我想知道编程撤消和重做的基本原理是什么?特别是在 React Native 中。我是一个初学者程序员,我无法弄清楚如何对撤消进行编程,因为它只是颠倒任何东西。
以单人纸牌游戏为例,您可以将一张牌放在其中一排牌的末端,只需将一张牌翻过来放在源牌堆中,或者将牌堆中的一张牌放在王牌堆上。这些都很容易编程,但是你将如何实现一个简单的“撤消”按钮来反转这些动作中的任何一个?并且可能无限。
【问题讨论】:
-
您可以将状态保留在一个数组中,并在向前移动时向数组中添加一个新元素,当您撤消时,您可以简单地删除数组的最后一个元素,或者向后移动一。
-
我猜是这样,但是对于所有可能的不同类型的运动,您必须有几种不同的状态。我只是想知道基本概念是如何编程的。就像在 Photoshop 中一样,实际上您可以做十亿种不同的事情,然后只需单击撤消即可撤消任何一项。您必须记录每个可能操作的状态。
-
@Hasen,是的,这正是他们所做的。整个应用程序中的每个动作都有一个知道如何“执行”该动作以及如何“撤消”该动作的功能。这些存储在列表中作为用户选择选项并执行更改
-
好的,感谢您的帮助。我想我现在明白了。
标签: ios react-native undo