在页面重载之间直接访问redux存储区以访问并保持状态是一种不好的做法

时间:2018-11-21 09:17:03

标签: reactjs redux react-redux

我想使用已经有点不同的代码。我已将重要数据存储在必须重新加载页面后立即可用的状态下,否则用户将被注销等。要实现此目的,我正在使用这种功能

window.addEventListener('onbeforeunload', store.dispatch(setDataAfterBrowserRefresh()));

尽管在该函数中,我希望能够在页面重新加载/刷新之前访问状态。 (当前,我有点只重新加载所有内容),所以我问在我的app.jsx和另一个文件中写这样的东西是一种不好的做法吗?

app.jsx

export const store = createStore(
connectRouter(history)(rootReducer),
{},
composeEnhancers(
applyMiddleware(
routerMiddleware(history),
thunk))
);

BrowserRefreshHandlerFile.js

import { store } from '../app.jsx';

介于两者之间的一些代码,然后

store.getState().partOfStateIWantToAccess

我已经习惯了仅通过使用连接的组件内部的道具,使用动作分派器等来访问商店,而不是在某些js代码中“直接”访问。

欢迎任何评论和想法。

1 个答案:

答案 0 :(得分:1)

除了不应重新加载React应用外,我建议您查看以下内容:How can I persist redux state tree on refresh?

有一个中间件链接,可以使您的状态保持在重新加载状态。