我有一个React Redux Web应用程序,我从create-react-app开始,然后慢慢适应redux。热加载不会重新加载整个页面并清除我的状态,这就是为什么我正在考虑实施HMR, 我在https://medium.com/@brianhan/hot-reloading-cra-without-eject-b54af352c642处找到了参考,但以下代码对我没有帮助。 没错,但是当我更改减速器状态时,整个页面都重新加载了。
我的index.js代码
import configureStore from './store'
const store = configureStore()
const render = App => {
return ReactDOM.render(
<Provider store={store}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>,
document.getElementById('root')
)
}
render(App)
if (module.hot) {
module.hot.accept('./App', () => {
const NextApp = require('./App').default
render(NextApp)
})
}
我的商店代码
import rootReducers from './reducers'
const configureStore = () => {
const store = createStore(
rootReducers,
composeWithDevTools(
applyMiddleware(
thunkMiddleware
)
)
)
if (
process.env.NODE_ENV !== 'production' ||
process.env.NODE_ENV !== 'staging'
) {
if (module.hot) {
module.hot.accept('./reducers', () => {
store.replaceReducer(rootReducers)
})
}
}
return store
}
export default configureStore