gpt4 book ai didi

reactjs - getWrappedInstance() 与 wrappedInstance : property on react-redux @connect

转载 作者:行者123 更新时间:2023-12-05 07:31:55 24 4
gpt4 key购买 nike

我注意到 @connect 实例上有一个名为 wrappedInstance 的属性,它包含用 @connect 包裹的组件状态。如果我使用它来访问状态如下

const { contact } = this.datasetConsoleInfo.contact.wrappedInstance.state;

它工作得很好。

但我被告知要使用 getWrappedInstance(),因为这是文档所说的。

事实上,下面的工作完全相同:

const { contact } = this.datasetConsoleInfo.contact.getWrappedInstance().state;

但我想知道是否每个人都这样做,因为这是文档所说的,他们害怕使用这个漂亮的属性。也许 react-redux 的人添加这个属性是为了让我们的生活更轻松,但不小心记录得很差。

使用 getWrappedInstance() 与直接访问 wrappedInstance: 属性有什么区别。

最佳答案

wrappedInstance 和 getWrappedInstance() 之间没有区别。但是不建议直接访问对象中的属性(想想Encapsulation)

我假定 connect 中的代码如下所示。

wrappedInstance = /* instance */;

getWrappedInstance() {
return wrappedInstance; // just return, but we can protect the data.
}

如您所知,javascript 中没有私有(private)变量或方法。因此,实际上即使仅使用 getter 提供数据也无法保护数据。所以当我们想要保护一些数据的时候,我们经常使用下划线(_)来表示数据是私有(private)的。 (例如,_wrappedInstance)。尽管connect 方法没有使用下划线(_),但最好不要直接访问数据以遵守封装。

关于reactjs - getWrappedInstance() 与 wrappedInstance : property on react-redux @connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51547825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com