如果是在useEffect(() => {}, [])
中执行的,这是由于React 18的Strict Mode导致的。React Strict Mode用于发现组件级别的常见错误,因此React会两次渲染单个组件。第一次渲染是我们期望的,另一次渲染是为了React Strict Mode。在开发阶段,你可能会遇到这个问题,尽管这不是一个问题。这是为了更好的开发体验。在生产阶段,默认情况下不会出现这样的问题。
你可以通过在next.config.js
文件中将reactStrictMode
设置为false
来禁用Strict Mode。这样做可以解决你遇到的问题。以下是一个示例:
const nextConfig = {
reactStrictMode: false
}
module.exports = nextConfig