我正在研究的项目是一个重构器,所以我在事后添加了Redux.有时,我意识到我需要一段代码中的特定状态属性,我可能没有时间正确地重构为可观察的.在这些情况下,我在商店调用getState来获取我需要的东西并继续使用它.我不禁觉得这种做法有点瑕疵.
使用store.getState在哪里我需要它被认为是反模式?在使用store.getState时,我应该避免使用它们的显式用例吗?
解决方法
对于你的observable来说,在一个典型的基于组件的视图层(如React)中,你真正需要在redux应用程序中观察到的唯一事情是整个应用程序状态整体而不是单个部分.对整个州的更改将从顶级组件订阅并逐渐减少.
但是,由于您正在重构Jquery应用程序,我认为您对可观察对象的使用是可以接受的.如果您不想自己动手,可以使用一个名为reselect的库来实现此目的.它可以帮助您从全局状态的任意部分计算状态,并提供有效的memoization,因此不会重新计算相同的输入.
At times,I realize I need a specific state property in a piece of code that I may not have the time to properly refactor into an observable. In those instances,I call getState on the store to get what I need and move on with it. I can’t help feeling like this approach is a little flawed.
您可以在这种情况下实现的一个简单的插入式解决方案是在reducers中使用事件发射器将全局状态的各个部分传播到需要它们的特定Jquery组件.这将使您不必传递全局状态,从而保留组件隔离.