【发布时间】:2017-11-15 16:56:00
【问题描述】:
我正在使用 redux-persist 的反应,并且如果用户从 /home 转到 /search,“Rehydrate”事件会被触发两次。
所以首先状态在根中是正确的。然后我改变我的搜索参数。点击搜索后,我可以看到“Rehydrate”事件被激活,它再次改变了应用程序的状态。
知道出了什么问题以及我能做些什么来解决它吗?
这是我正在使用的代码
import {Router, Route, browserHistory, Redirect} from 'react-router';
import {persistStore, autoRehydrate} from 'redux-persist'
import {Provider} from 'react-redux';
import {compose,createStore, applyMiddleware} from 'redux';
import reducers from './reducers';
import thunkMiddleware from 'redux-thunk';
import promiseMiddleware from 'redux-promise-middleware';
import localForage from "localforage";
export const store = createStore(
reducers,
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(),
compose(
applyMiddleware(
thunkMiddleware,
promiseMiddleware()),
autoRehydrate()
)
);
const persistor = persistStore(store, {storage: localForage});
render(
<Provider store={store} persistor={persistor}>
<Router history={browserHistory}>
<Route path="/" component={Home}/>
<Route path="/search" component={Search}/>
</Router>
</Provider>,
document.getElementById('root')
);
感谢和问候
PS:附上redux状态的图片。正如您在触发搜索后看到的那样,有一个新的 persist/Rehydrate 事件。我有点幸运,在补水事件之后搜索仍然完成 - 但行为并不好。
【问题讨论】: