我有一个主要的应用程序组件并正常订阅商店:
class App extends Component {
constructor(props) {
super(props)
this.state = {}
this.unsubscribe = store.subscribe(() => {
console.log(store.getState());
this.setState(store.getState());
})
}
render() {
return (
<Provider store={store}>
<div id="App">
<MainNavbar />
<ContentHandler />
<Footer />
</div>
</Provider>
);
}
}
在
store.js
上,如果我仅使用根减速器创建商店,一切都会正常工作:
const store = createStore(reduceAppState);
尽管如此,如果我创建它并将 saga 作为中间件传递:
import { createStore } from 'redux'
import createSagaMiddleware from 'redux-saga'
import { composeWithDevTools } from 'remote-redux-devtools';
import reduceAppState from './reducers'
const sagaMiddleware = createSagaMiddleware()
const composeEnhancers = composeWithDevTools({trace: true, traceLimit: 25})
const store = createStore(reduceAppState, undefined, composeEnhancers(
sagaMiddleware
));
export default store;
我收到此错误:
这听起来很像一个错误。在谷歌上找不到任何东西。你知道为什么会这样吗?
发现问题:我必须在 sagaMiddleware 上
applyMiddleware
:
import { createStore, applyMiddleware } from 'redux'
import createSagaMiddleware from 'redux-saga'
import { composeWithDevTools } from 'remote-redux-devtools';
import reduceAppState from './reducers'
const sagaMiddleware = typeof createSagaMiddleware === 'function' ? createSagaMiddleware() : createSagaMiddleware.default()
const composeEnhancers = composeWithDevTools({trace: true, traceLimit: 25})
const store = createStore(reduceAppState, composeEnhancers(
applyMiddleware(sagaMiddleware)
));
export default store;
解决问题。您可以添加 redux chrome 扩展,这行代码需要添加到您的 redux 商店中:
**conststore=createStore(rootReducers,window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());**
总体而言,您的 redux 存储应该如下所示:
import { createStore } from "redux";
从“./reducers”导入rootReducers;
const store=createStore(rootReducers,窗口。REDUX_DEVTOOLS_EXTENSION && 窗口。REDUX_DEVTOOLS_EXTENSION());
导出默认商店;