首页 > 解决方案 > 当只需要一次刷新时,React 中的无限刷新循环

问题描述

我有一个反应应用程序,其页面上有一个组件。我想要做的是在您第一次加载该页面时仅刷新一次,但我尝试过的所有操作,window.location.reload()例如,都以无限刷新循环结束。有谁知道如何做到这一点?

标签: javascriptreactjswindow

解决方案


例如这样的:

import React, { useEffect } from 'react';
import ReactDOM from 'react-dom';

const App = () => {
  const reloadCount = Number(sessionStorage.getItem('reloadCount')) || 0;

  useEffect(() => {
    if(reloadCount < 2) {
      sessionStorage.setItem('reloadCount', String(reloadCount + 1));
      window.location.reload();
    } else {
      sessionStorage.removeItem('reloadCount');
    }
  }, []);

  return (
    <div>{ JSON.stringify({ reloadCount }) }</div>
  );
};

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root'),
);

推荐阅读