`url` 已被棄用
錯誤發生原因
在 6.x 之前的版本中,`url` 屬性會神奇地注入到每個 `Page` 元件(`pages` 目錄中的每個頁面)。
移除這個屬性的原因是我們希望讓事情變得更可預測和明確。憑空出現一個神奇的 `url` 屬性不利於實現這個目標。
⚠️ 在某些情況下,即使您的程式碼中沒有任何地方參考
url
,使用 React 開發者工具也可能會觸發此警告。請嘗試暫時停用擴充功能,看看警告是否仍然存在。
可能的解決方法
/docs/advanced-features/codemods#url-to-withrouter
從 Next 5 開始,我們提供了一種方法,可以將 Next.js 路由器物件明確地注入頁面及其所有子元件中。注入的 router
屬性將包含與 url
相同的值,例如 pathname
、asPath
和 query
。
以下是如何使用 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
這有幫助嗎?