摘要:是異步,所以在之后立即調用是獲取不到最新的數據的,那么怎么獲取最新的數據呢下面介紹三個方法回調函數在之后去函數中調用,此時的已經更新將放入函數中在函數中,在之后是立即更新的,所以也可以獲取到更新后的數據。
this.setState是異步,所以在this.setState之后立即調用this.state是獲取不到最新的數據的,那么怎么獲取最新的數據呢?下面介紹三個方法:
1.回調函數callback
this.setState({ val: this.state.val+1 }, () => { console.log(this.state.val) });
2.componentDidUpdate
componentDidUpdate(){ console.log(this.state.val); }
在this.setState之后去componentDidUpdate函數中調用,此時的this.state已經更新
3.將this.setState放入setTimeout函數中
let self = this; setTimeout(function () { self.setState({ val:self.state.val+1 }); console.log(self.state.val); })
在setTimeout函數中,在this.setState之后this.state是立即更新的,所以也可以獲取到更新后的數據。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/82934.html
摘要:判斷當前是否處于批量更新狀態,如果是,將當前組件加入待更新的組件隊列中。將組件的暫存隊列中的進行合并,獲得最終要更新的對象,并將隊列置為空。執行生命周期,根據返回值判斷是否要繼續更新。 this.setState( )方法是React.js中最常見的一種方法,利用它可以控制各種狀態變化,達到頁面各種交互效果,但是,我們在React開發中偶爾會發現,明明已經通過this.setState...
摘要:不保證這個狀態的更新是立即執行的。這個問題導致如果開發者在之后立即去訪問可能訪問的不是最新的狀態。不應該被直接更改,而是應該新建一個來表示更新后的狀態。實驗采用基于控制變量法的對照試驗。至于的問題,留給讀者自己吧。 React組件重新渲染的條件是: B.只要調用this.setState()就會發生重新渲染。 C.必須調用this.setState()且傳遞不同于當前this.setS...
摘要:我們來從設計思想上,和官方團隊的回應上,了解一下否決理由。此外,還有一個方法新的接口設計支持接收一個回調函數,當其子組件掛載時,這個回調函數就會相應觸發。 從 setState 那個眾所周知的小秘密說起... 在 React 組件中,調用 this.setState() 是最基本的場景。這個方法描述了 state 的變化、觸發了組件 re-rendering。但是,也許看似平常的 th...
摘要:我們來從設計思想上,和官方團隊的回應上,了解一下否決理由。此外,還有一個方法新的接口設計支持接收一個回調函數,當其子組件掛載時,這個回調函數就會相應觸發。 從 setState 那個眾所周知的小秘密說起... 在 React 組件中,調用 this.setState() 是最基本的場景。這個方法描述了 state 的變化、觸發了組件 re-rendering。但是,也許看似平常的 th...
摘要:根本原因在于,并不是真正意義上的異步操作,它只是模擬了異步的行為。而合成事件和生命周期函數中,是受控制的,其會將設置為,從而走的是類似異步的那一套。總結此處總結是直接引用了只在合成事件和鉤子函數中是異步的,在原生事件和中都是同步的。 如何使用setState 在 React 日常的使用中,一個很重要的點就是,不要直接去修改 state。例如:this.state.count = 1是無...
閱讀 2428·2021-11-25 09:43
閱讀 1203·2021-09-07 10:16
閱讀 2624·2021-08-20 09:38
閱讀 2947·2019-08-30 15:55
閱讀 1467·2019-08-30 13:21
閱讀 897·2019-08-29 15:37
閱讀 1451·2019-08-27 10:56
閱讀 2100·2019-08-26 13:45