首页 > 解决方案 > 纯减速器和画布上下文?

问题描述

我正在创建一个 MS Paint 副本。在搞砸了一周的 React 状态之后,我想使用 Redux。我想到的问题是:我怎样才能将一个必须是纯的 reducer 与一个基本上有自己状态的画布上下文(在上面绘制什么)配对?我在这里看到两个选项:

  1. 每次状态更改时我是否需要重新创建画布上下文?如果是这样,我确实认为这确实是多余的做法。

  2. 或者我可以像往常一样只携带状态之间的上下文并使用它的方法来绘制减速器吗?但这使我的减速器不纯,据我所知。

谢谢你。

标签: reactjsreduxhtml5-canvas

解决方案


我假设画布上下文不能轻易序列化,并且它不是应用程序状态的“事实来源”(而是由本机浏览器 api 创建的对象)。因此,我只会使用 redux 来获得撤消/时间旅行功能。你的 reducer 只会保存绘制动作的历史。在空白画布上重播这些内容应该可以恢复应用程序的状态。


推荐阅读