在开发模式下,React 的 Strict Mode 会导致某些生命周期方法和钩子被调用两次,以帮助开发者发现潜在的副作用。如果你在使用 useEffect
等钩子进行 API 请求,这可能会导致请求被发送两次。
解决方法:
在 index.js
中找到 React.StrictMode
并移除它(仅在开发模式下):
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import './index.scss';
import '@/components/common/Toast'
import store from './store'
import { Provider } from 'react-redux'
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
// <React.StrictMode>
<Provider store={store}>
<App />
</Provider>
// </React.StrictMode>
);
移除 React.StrictMode
只会影响开发模式,不会影响生产模式。React StrictMode
是一种帮助开发者发现潜在问题和警告的不安全生命周期方法的工具。它不会在生产模式中激活,因此移除它不会对上线的应用程序产生影响。