跳至内容
文档错误`url` 属性已弃用

`url` 属性已弃用

此错误发生的原因

在 6.x 之前的版本中,url 属性会神奇地注入到每个 Page 组件(pages 目录中的每个页面)中。

弃用此属性的原因是我们希望使一切变得非常可预测和明确。莫名其妙地出现一个 url 属性并不利于实现这一目标。

⚠️ 在某些情况下,即使您在代码中任何地方都没有引用 url,使用 React 开发者工具也可能会触发此警告。尝试暂时禁用扩展程序,然后查看警告是否仍然存在。

可能的解决方法

/docs/advanced-features/codemods#url-to-withrouter

从 Next 5 开始,我们提供了一种方法可以将 Next.js 路由器对象显式注入到页面及其所有下级组件中。注入的 router 属性将包含与 url 相同的值,例如 pathnameasPathquery

以下是用 withRouter 的示例

pages/index.js
import { withRouter } from 'next/router'
 
class Page extends React.Component {
  render() {
    const { router } = this.props
    console.log(router)
    return <div>{router.pathname}</div>
  }
}
 
export default withRouter(Page)

我们提供了一个 codemod(代码到代码转换),可以自动将 url 属性的使用更改为 withRouter

您可以在此处找到此 codemod 和有关如何运行它的说明:/docs/advanced-features/codemods#url-to-withrouter