的setState的setState()():問題在if語句中if語句
// morePage = true
// pageNum = 1
if(morePage){
this.setState({pageNum: this.state.pageNum+1})
}
console.log(this.state.pageNum); // return: 1
的setState()出來if語句:
// morePage = true
// pageNum = 1
if(morePage){
// ...
}
this.setState({pageNum: this.state.pageNum+1})
console.log(this.state.pageNum); // return: 2
我面臨着現在,我想知道爲什麼......
謝謝:)
編輯時,正確答案:
所以,是的,我應該花更多的時間閱讀陣營的文件:P 如果有人想知道如何我終於做到了,這裏就是答案:
在文檔,他們都說沒有保證您的狀態將在重新呈現之前具有新的價值。所以你必須使用「componentDidUpdate()」。
所以我所做的是,我把:
this.setState({pageNum: this.state.pageNum+1})
我已經創建了一個隨機函數裏面,之後,在「componentDidUpdate(prevProps,prevState)」功能,我可以訪問新和舊道具價值觀,我可以使用以前的和「頁次」 :)
你應該結帳我的回答如果你不想使用額外的生命週期方法只適用於本。 –
是的,你的答案也應該工作,但我的代碼更大,我有其他的東西需要在componentDidUpdate(),所以這是一個更乾淨的解決方案:) – Leon