redux從后臺ajax取得的數據何時傳給state?
謝邀!
對于你所說的state,有兩種理解,如果是redux中的state,那么為全局狀態管理中的state,如果照你問題補充描述來看,則只需要局部state即可滿足需求,這里由于不清楚你具體是哪一種需求,故而兩種情況皆給予回復:
情境一:局部state對于你問題的補充描述的情景:
在組件類的構造函數constructor中初始化一個state,其中用戶列表userList為空數組
生命周期componentWillMount中發起ajax請求,請求成功后,將返回的數組通過setState賦值給state中的userList
render函數中渲染userList好友列表
因為render函數會在state值改變后重新渲染,所以,一旦ajax獲取到好友列表數據,且好友列表數據跟頁面顯示的不一致(初始化的為空數組)頁面便會重新渲染(DOM自動更新)
情境二:redux中state(全局狀態)在reducer中聲明狀態state,初始化userList為空數組
設置修改userList的action
在組件中通過connect與mapDispatchToProps將修改userList的action傳給props
將ajax請求的數據通過props中的action函數修改全局狀態state中的userList
組件render函數渲染userList好友列表同情境一,也為響應式更新
若狀態信息需要多組件間共享(如登錄狀態、用戶信息等),建議使用redux(即情境二)的方案;
反之如果狀態信息只在某一組件使用(如商品詳情等)建議使用局部state方案。
上一篇駐馬店出過哪些名人
下一篇tracker工作原理