내 redux 저장소에 대한 아래의 코드를 가지고 있고 모든 것이 반응과 유선 때 예상대로 잘 작동합니다. 이제 .. 내가 (반응의 외부) 액션 디스패처에 매장의 현재 상태에 액세스하려고하지만 난 처음 발송 한 후 이것을 사용 빈 값을 얻고있다reactx 외부의 redux에서 현재 저장소 상태에 액세스하는 방법?
import configureStore from '../../common/store/configureStore';
const history = createHistory();
const reduxRouterMiddleware = syncHistory(history);
// Create a new Redux store instance
const store = configureStore({},reduxRouterMiddleware);
console.log("Store data ===>"+JSON.stringify(store.getState()));
내 가기 :
import {createStore, applyMiddleware, compose} from 'redux';
import thunk from 'redux-thunk';
import rootReducer from '../reducers';
import DevTools from '../containers/DevTools';
import createLogger from 'redux-logger';
import promise from 'redux-promise';
export default function configureStore(initialState, reduxRouterMiddleware) {
const logger = createLogger();
const createStoreWithMiddleware = applyMiddleware(
thunk,promise,
reduxRouterMiddleware
)(createStore);
const isProduction = process.env.NODE_ENV === 'production';
let store;
if (!isProduction) {
store = createStoreWithMiddleware(rootReducer, initialState, compose(
DevTools.instrument()
));
}
else if(initialState!=''){
store = createStoreWithMiddleware(rootReducer, initialState, compose(
));
}else{
store = createStore(rootReducer)
}
if (module.hot) {
// Enable Webpack hot module replacement for reducers
module.hot.accept('../reducers',() => {
const nextRootReducer = require('../reducers');
store.replaceReducer(nextRootReducer)
})
}
return store
}
업데이트 1 :
나는 전역 변수로 저장을하는 내 가게 변수에 약간의 수정을 만들어 가게를 반환하는 기능을 추가하고이 작동하는 것 같다. 이것이 올바른 방법일까요?
import {createStore, applyMiddleware, compose} from 'redux';
import thunk from 'redux-thunk';
import rootReducer from '../reducers';
import DevTools from '../containers/DevTools';
import createLogger from 'redux-logger';
import promise from 'redux-promise';
let store;
export default function configureStore(initialState, reduxRouterMiddleware) {
const logger = createLogger();
const createStoreWithMiddleware = applyMiddleware(
thunk,promise,
reduxRouterMiddleware
)(createStore);
const isProduction = process.env.NODE_ENV === 'production';
if (!isProduction && initialState!='') {
store = createStoreWithMiddleware(rootReducer, initialState, compose(
DevTools.instrument()
));
}
else if(initialState!=''){
store = createStoreWithMiddleware(rootReducer, initialState, compose(
));
}
if (module.hot) {
// Enable Webpack hot module replacement for reducers
module.hot.accept('../reducers',() => {
const nextRootReducer = require('../reducers');
store.replaceReducer(nextRootReducer)
})
}
return store
}
export function returnStore() {
return store
}
다음과 같이 상점에 액세스 할 수 있습니다.
import {returnStore} from '../../common/store/configureStore';
console.log("Store data rules ===>"+JSON.stringify(returnStore().getState().rules.data));