解决 Next.js 中“App Container 已弃用”错误
本文档指导开发者如何通过更新其自定义 App 组件来解决 Next.js 中的“App Container 已弃用”错误。
错误发生的原因
“App Container 已弃用”错误通常发生在您在自定义的 <App> (pages/_app.js
) 中使用 <Container> 组件时。在 Next.js 9.0.4 版本之前,<Container> 组件用于处理滚动到哈希值。
从 9.0.4 版本开始,此功能已移至组件树的上层,因此在您的自定义 <App> 中 <Container> 组件变得不再必要。
可能的解决方法
要解决此问题,您需要从自定义的 <App> (pages/_app.js
) 中移除 <Container> 组件。
之前
pages/_app.js
import React from 'react'
import App, { Container } from 'next/app'
class MyApp extends App {
render() {
const { Component, pageProps } = this.props
return (
<Container>
<Component {...pageProps} />
</Container>
)
}
}
export default MyApp
之后
pages/_app.js
import React from 'react'
import App from 'next/app'
class MyApp extends App {
render() {
const { Component, pageProps } = this.props
return <Component {...pageProps} />
}
}
export default MyApp
进行此更改后,您的自定义 <App> 应该可以按预期工作,而无需 <Container> 组件。
有用链接
这有帮助吗?