問題:
當嘗試以程式設計方式從React Router v6中的類別元件重新導向到不同的路由時,您可能會遇到以下錯誤:
TypeError: Cannot read properties of undefined (reading 'push')
發生此錯誤是因為導航屬性在v6中的類別元件上不可用。相反,它只能被函數組件存取。
解:
有兩種方法可以解決此問題:
將類別組件轉換為函數組件:
建立一個自訂的withRouter HOC:
import withRouter from './withRouter'; // Change this to the path of your custom HOC file export default withRouter(AddContacts);
這將提供導覽
這將提供導覽
interface NavigateFunction { ( to: To, options?: { replace?: boolean; state?: State } ): void; (delta: number): void; }在React Router v6中,導覽函數不再是一個對象,而是一個將目標路徑作為參數的函數第一個參數和可選選項對像作為第二個參數。
// Example usage this.props.navigate("/");這表示導航的語法也改變了。若要使用導航導航至路由,請按如下方式呼叫函數:透過執行上述任一解決方案,您應該能夠以程式設計方式重定向到 React Router v6 中的不同路由。
以上是如何在 React Router v6 中以程式設計方式從類別元件重新導向?的詳細內容。更多資訊請關注PHP中文網其他相關文章!