系统: macOS 10.12.4
运行环境: Chrome 57.0.2987.133 (64-bit)
问题复现: https://github.com/raininfall/dva-redux-persist-error
主要库版本:
复现步骤:
主要代码如下:
import dva, { connect } from 'dva';
import { Router, Route } from 'dva/router';
import { persistStore, autoRehydrate } from 'redux-persist';
// 1. Initialize
const app = dva({
initialState: { count: 1 },
extraEnhancers: [autoRehydrate()],
});
// 2. Model
app.model({
namespace: 'count',
state: 0,
reducers: {
inc(state) {
return state + 1;
},
dec(state) {
return state - 1;
},
},
});
// 3. View
const App = connect(({ count }) => ({
count,
}))(function (props) {
return (
<div>
<h2>{ props.count }</h2>
<button onClick={() => props.dispatch({ type: 'count/inc' })}>+</button>
<button onClick={() => props.dispatch({ type: 'count/dec' })}>-</button>
</div>
);
});
// 4. Router
app.router(({ history }) =>
<Router history={history}>
<Route path="/" component={App} />
</Router>
);
// 5. Start
app.start('#root');
persistStore(app._store, {
whitelist: ['count'],
});
我也遇到这样的问题,有可能是热更新引起的
可以实现一个middleware去拦截REHYDRATE,然后dispatch给各个namespace的save
Same here, cannot see anything rehydrating on refresh...
Any solution?
Thanks
遇到了同样的问题 感觉是persist的reducer没有生效。目前只能手动的去接受REHYDRATE
我下载了你的例子,运行 起来看了,遇到跟你一样的问题
其实关键是不是因为redux认为state是一样的?

@raininfall 我发现把 redux-devtool 关了就好了
说明 roadhog 有问题
发生了同样的问题,关掉了redux-devTools插件就OK了,是roadhog有问题还是devtools有问题啊?
Most helpful comment
@raininfall 我发现把 redux-devtool 关了就好了