elm - 强制重绘 img 元素

标签 elm virtual-dom

My Elm 应用程序允许用户旋转图片:单击屏幕上的图片时,elm 会调用 API 来旋转服务器上的图片文件。接下来,我希望旋转后的图像显示在浏览器中。

但是虚拟 DOM 根本没有改变,因为 img 节点具有相同的 src URL。有没有办法强制重新创建 img?

当然,我可以使用 Keyed 节点或修改我的 img 上的某些属性来强制重绘,但这意味着向我的模型添加一些在旋转时修改的东西。这是可能的,但不是很优雅。

最佳答案

想要在旋转时修改某些内容:即图像。因此,当您希望发生旋转时,您将对模型进行更改。我会让 API 的响应在模型中增加一个计数器(或通过 Time.now 使用当前时间),然后使用基于该值的缓存破坏查询参数更新图像 URL。有关缓存清除查询参数的更多详细信息,请参见:Cache busting via params

关于elm - 强制重绘 img 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47241026/

相关文章:

angular - Angular 是否有 React 的 Virtual DOM 的等价物?

css - Elm - 元素的绝对位置

npm 修剪坏的 PATH?无法执行安装脚本

elm - 如何将行或列相对于另一个组件定位,同时与 Elm 的 mdgriffith/style-elements 保持对齐

functional-programming - `targetChecked` 中的 Bool 如何变成 `Action` ?

javascript - virtual-dom - 如何获取真实的 DOM 元素以便与 spin.js 集成?

javascript - 为什么说 React 的 Virtual DOM 概念比脏模型检查更高效?

javascript - 如何正确检测 React JS 中的重新渲染?

elixir - 从 github 导入 Elm 前端到 Phoenix 后端

javascript - ReactJS - 父组件中 `setState` 的性能影响