【发布时间】:2016-03-16 23:28:39
【问题描述】:
简而言之
在使用 React 几个月后 - 使用 this 跟踪组件中变化的变量的想法感觉就像在北极浮潜 - 永远没有人应该这样做。
但是对于 Leaflet,会发生这种情况(关于我将跳过的细节,我不能使用现在存在的非常好的 Leaflet 组件包装器。
导致我去this的问题:
我正在尝试将初始缩放级别作为状态保存到商店中,但由于我使用的是更改渲染路径的操作,因此我无法调用 Map Component另一个动作作为MapComponent 挂载而没有得到链动作错误“不变调度”。我也找不到任何异步更新来放大传单文档以解决同步操作错误。
如果没有初始缩放,我看不到用户进行的第一次缩放是向上还是向下:(
我的黑客解决方案:
由于地图的其余部分保存在this 中,我刚刚创建了this 的另一个属性,称为this.currenZoom,该属性在组件安装时被初始化,并在调用zoomStart 时更新。(技术上像状态一样更新)
我的问题:
我是否正在使用this 在北极浮潜以保持我的缩放状态?或者这是可以接受的,因为 Leaflet 在技术上与虚拟 DOM 的工作方式不同? 在我们组件的某些情况下,可以使用this 来管理变量更新。
注意:这个问题可能会让人觉得很生气,但说真的,我已经使用state 和props 进行了很长时间的所有事情,以至于在我的组件中使用this 感觉超级hacky。强>
【问题讨论】:
标签: reactjs this state flux reactjs-flux