簡體   English   中英

'this.props.history.push()' 適用於普通頁面但不適用於嵌套組件?

[英]The 'this.props.history.push()' is working for normal page but not working for nested components?

我有名為 Addmember.js 的 reactjs 頁面,我可以在其中添加人員。 我有一個下一步按鈕,它將通過以下代碼將我帶到儀表板

 this.props.history.push('/dashboard')

但是真正的問題出現了,當我在新頁面中使用添加成員組件時,當我單擊下一步時,它顯示以下錯誤

無法讀取未定義的屬性“推送”

幫助將不勝感激!

嘗試從“react-router-dom”導入withRouter

然后在 withRouter 中傳遞組件

例如。

export default withRouter(Addmember);

問題是因為您的組件在嵌套時找不到歷史道具。 目前 react-router-dom 更新到版本 5,所以你可以使用他們的鈎子。

要解決給定的問題,您應該像import {useHistory} from 'react-router-dom'一樣導入 useHistory 鈎子

然后像const history = useHistory()一樣在 AddMember 中使用它。 然后,您可以在需要的地方使用歷史記錄中的所有方法。 我想它會對你有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM