【发布时间】:2017-01-04 23:45:35
【问题描述】:
我的用户提供了一个 URL,我想在我的 React+Redux 应用程序中使用该 URL 作为 <canvas> 元素的背景。这意味着我的 React 组件的 render() 方法需要访问 <img>包含用户图像的 DOM 节点。不幸的是,设置图像标签的src 属性是异步的,因为在从服务器获取数据之前,请求的图像实际上不会填充到 DOM 中。
通常对于异步任务,例如 API 调用,会将异步任务的结果直接存储到 Redux 存储中,但从读取 Redux docs 来看,它似乎存储了不可序列化的对象(如 DOM不建议在 store 中使用 node)。
还有其他合理的方法来解决这个问题吗?目前我在滥用我的 React 组件的生命周期方法来观察 URL prop 的变化,然后将<img> DOM 节点异步设置为组件的状态,感觉很尴尬。
【问题讨论】:
-
所以用户输入了一个 URL,你想存储 BLOB?你是如何设置背景的?
-
@martriay 我想将用户提供的图像绘制到画布中。使用developer.mozilla.org/en-US/docs/Web/API/…
-
我不确定你所说的“blob”是什么意思。为了更清楚起见,我希望我可以长期使用
<img>节点,以便我可以在道具更改时重绘<canvas>,始终使用用户的 URL 作为背景。
标签: canvas reactjs redux react-redux