ReactJS redux订阅语句

时间:2017-07-15 16:01:58

标签: reactjs redux react-redux

store.subscribe(()=> {})是观察Redux商店变化的唯一方法吗?

我异步提取我的用户,当应用程序加载时,用户存储很可能是空的,所以我必须做这样的事情:

store.subscribe( () => {

        var users = store.getState().users;
        if( users.length > 0 ) {
          this.setState({ ... })
        }

      });

现在我有3个或4个组件,我必须在每个组件中使用相同的逻辑。我的问题:这个问题有更优雅的解决方案吗?某种方式在“全球层面”聆听Redux的变化?

1 个答案:

答案 0 :(得分:3)

这里有两个答案。

是的,Lines <- "MonitoringLocationIdentifier YEAR USGS-260753080113901 1999 USGS-260533080123701 1999 USGS-260528080122301 1999 USGS-260521080122401 1999 USGS-260530080112101 1999 USGS-260547080105801 1999" DF <- read.table(text = Lines, header = TRUE, as.is = TRUE) 是观察商店变更的唯一方式(商店也实施的挑剔异常store.subscribe(),所以如果你使用了observable,你也可以这样订阅)。

但是,官方React-Redux的Symbol.observable函数已经处理了商店订阅和提取组件所需数据的过程。不要自己编写商店订阅逻辑 - 使用connect。 (我写了一篇关于Reddit explaining why you should use React-Redux instead of manually subscribing的长篇评论。)