這兩天可苦了本寶寶,看文檔,看博客,goole,百度完好多資料,還是無法理解redux-thunk是個什么鬼東西。可能天生愚笨。
直到我碰見了一個這樣的問題:
(假設你已經知道了redux中store、action、reducer之間的關系和用法)當我們從后台獲取數據,並把后台獲取的數據展保存在全局store中時,問題來了,Ajax是異步請求啊!我咋個知道什么時候他已經保存進了store中,並在組件中使用(假設你已經知道了如何關聯redux和react,懂了如何connect)this.props去渲染在組件中?
在我不斷敲試代碼中,終於發現了redux-thunk的神秘!他能返回兩種狀態,一種是我還沒有把后台數據保存給全局store中,一種狀態是已經保存好了。然后,問題又來了,怎么去辨識他們兩種狀態呢?答案很簡單,在reducer的返回的action字段中,添加一個屬性isFetching來辨識,初始狀態設置isFetching為ture,表示正在保存中,ajax保存完后,將isFetching改為false,然后在組件中判斷一下該state的isFecthing即可。
注:可能你也會看不懂我亂七八糟的理解,所以學習是一個漫長的過程!!!