【发布时间】:2018-06-09 04:26:36
【问题描述】:
这是每个 REACT 开发人员最常做的事情......我们使用 redux store 来维护应用程序模型,如果我们想使用 store 信息,我们必须使用订阅(connect() 方法)创建一个属性对象 where mapStateToProps创建存储对象的克隆只读版本以响应 PROP。这还没有结束,因为可访问属性是只读的,我们继续使用 setState() 创建另一个实例来响应同一对象的状态(使其可写),setState() 是同一对象的另一个克隆版本。我们最终创建了同一个对象的多个版本,奇怪的是我们可以继续改变这三个对象中的任何一个,而另一个不知道这可能是一个真正的破坏......有什么办法可以防止这种情况发生吗? ...如果是这样,它肯定有助于性能并防止克隆对象的恶作剧。
【问题讨论】:
-
嗯......你不应该把道具变成状态。您应该使用 mapDispatchToProps 从您的反应元素调度操作,这将更新商店,然后这些更改将作为道具传播回来。
-
如上所述,生成的道具不是只读的,每次我想更改比创建状态更昂贵的对象时,我都可以调度......即使我这样做了,我还没有结束如果要更改该道具内部对象,请创建多个减速器操作?
-
很抱歉,我很难理解你的措辞。
标签: javascript reactjs redux react-redux state