Javascript React/Redux使用store从另一个组件获取状态

Javascript React/Redux使用store从另一个组件获取状态,javascript,reactjs,react-native,redux,react-redux,Javascript,Reactjs,React Native,Redux,React Redux,我刚开始使用Redux,因为我的应用程序由于将状态传递给不同的组件而变得复杂。我在尝试将数据检索到其他组件时遇到错误 我想将状态传递给另一个组件,但出现以下错误: store.js import {createStore} from 'redux'; const initialState = { regionId: 0 }; const reducer = (state = initialState, action) => { if(action.type === "REGI

我刚开始使用Redux,因为我的应用程序由于将状态传递给不同的组件而变得复杂。我在尝试将数据检索到其他组件时遇到错误

我想将状态传递给另一个组件,但出现以下错误:

store.js

import {createStore} from 'redux';

const initialState = {
  regionId: 0
};
const reducer = (state = initialState, action) => {

  if(action.type === "REGIONAL_ID") {
     return {
        regionId: action.regionId
      };
    }
    return state;
}
const store = createStore(reducer);
store.subscribe(() => {
  console.log(store.getState().regionId)
})

export default store;
在我的Network.js组件中,我称之为

const REGION_ID = store.subscribe(() => {
    return store.getState().regionId;
})
console.log(REGION_ID);
我尝试了以下方法,但也出现了一个错误。非常感谢

const REGION_ID = return store.getState().regionId;
这不是一个错误。该方法返回一个
unsubscribe
方法,并且
console.log()
显示该方法的实现:

const REGION_ID = store.subscribe(() => {
    return store.getState().regionId; // this is isn't returned to REGION_ID
})
console.log(REGION_ID); // REGION_ID contains the unsubscribe method
如果要使用从州政府获得的
regionId
,请将代码放入订阅回调中:

tore.subscribe(() => {
    const REGION_ID = store.getState().regionId;
    console.log(REGION_ID );
})

此行
const REGION\u ID=return store.getState().regionId产生错误,因为。

哦,我明白了。谢谢如果你不介意的话。。。如何在subscribe函数之外访问
REGION\u ID
变量?这就是我尝试返回方法的原因,但不确定如何从外部获取更新的值。有一种简单的方法将
REGION\u ID
更改为
let
,而不是
const
,然后在订阅中分配值,但是。。。您如何知道subscribe发生了,并且outside REGION_ID变量已更新?为什么不在subscribe回调中运行需要REGION_ID的代码呢?我尝试了下面的
let Updated=store.subscribe(()=>{let REGION_ID=store.getState();})
但是返回unsubscribe方法。我的主要问题是试图获取
export default new NetworkService()中服务组件的状态
但是
this.props
返回未定义,所以我尝试订阅,但我也遇到了问题;订阅(()=>{REGION_ID=store.getState();})-您可以访问订阅之外的
区域ID
,但不知道何时准备/更新。您应该用您的完整用例打开另一个问题。我认为你的解决方案是错误的。