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

Posted

技术标签:

【中文标题】在页面重新加载之间直接访问 redux 存储以访问和保持状态是一种不好的做法吗【英文标题】:Is it a bad practice to access redux store directly between page reloads to access and persist state 【发布时间】:2019-04-23 19:45:42 【问题描述】:

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

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】:

除了不应该重新加载 React 应用程序之外,我建议你看看这个:How can I persist redux state tree on refresh?

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

【讨论】:

我发现之前有SO贴,好像里面提到的中间件已经不再维护了。此外,我真的不知道我应该如何防止重新加载网页,无论如何这都是我无法实现的,所以我必须有解决方案来至少保持状态的某些部分完好无损。

以上是关于在页面重新加载之间直接访问 redux 存储以访问和保持状态是一种不好的做法吗的主要内容,如果未能解决你的问题,请参考以下文章

重新加载页面时 Redux 存储更改

产品加载到 redux 商店后,UseEffect 不会重新渲染页面

即使在页面以角度5重新加载后如何将值本地存储到变量中

Django CSRF错误是通过以多页形式访问页面来修复的吗?

在 NextJS 的 getServerSideProps 中访问 Redux 存储

Redux,如果我想访问数据,是不是必须在所有容器中导入存储?