跳至內容
文件錯誤`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)

我們提供了一個程式碼修改器(一種程式碼到程式碼的轉換工具),可以自動將 url 屬性的用法更改為 withRouter

您可以在這裡找到此程式碼修改器和如何運行它的說明:/docs/advanced-features/codemods#url-to-withrouter