Javascript React/Redux使用store从另一个组件获取状态
我刚开始使用Redux,因为我的应用程序由于将状态传递给不同的组件而变得复杂。我在尝试将数据检索到其他组件时遇到错误 我想将状态传递给另一个组件,但出现以下错误: store.jsJavascript 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
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
,但不知道何时准备/更新。您应该用您的完整用例打开另一个问题。我认为你的解决方案是错误的。