簡體   English   中英

在reactjs中,當在setTimeout延遲中設置時,this.props.history.push('/')重定向不起作用

[英]In reactjs this.props.history.push('/') redirect doesn't work when set in a setTimeout delay

我有一個通行證,可以將用戶重定向到首頁,因此我一直在使用它

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

效果很好,但現在我們要延遲此操作,因此我將整個內容包裝在setTimeout函數中

setTimeout(function () {
  this.props.history.push('/')
}, 1500);

但這會中斷並給我錯誤“ TypeError:無法讀取未定義的屬性” history”

我嘗試將props值添加到const,然后在const值上設置超時,但是仍然沒有任何樂趣,我看不到任何原因為何不起作用,所以我碰到了磚牆,有人可以掉下嗎給我一些啟示嗎?

它的背景下this是傳給你的麻煩。

試試像下面綁定this到您的內部函數

setTimeout(() => {
  this.props.history.push('/')
}, 1500);

上面的答案有效,但是如果由於某些原因箭頭功能對您不起作用,則可以執行以下操作

創建一個方法

gotoHome(){
   this.props.history.push('/')
}

將方法綁定到context: this

如果您的組件具有構造函數,則最好在其中進行綁定

this.gotoHome = this.gotoHome.bind(this)

將方法傳遞給setTimeout

setTimeout(this.gotoHome, 1500)

暫無
暫無

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

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