dva中模型中subscriptions的使用

dva中的subscriptions如何使用

有時,我們希望一些數據一開始就自動從接口中獲取數據,在dva中如何實現呢?
這時,就需要用到dva的subscriptions了。
subscripitons內的方法,無論任何命名,都會自動執行,見如下示例

export default {
	namespace: ''
	...
	subscriptions: {
		setup({dispatch, history}){
			history.listen((location) => {
	        const reg = new RegExp('/pro/(.+)')
	        const res = reg.exec(location.pathname)
	        if (res && res.length>1) {
	          const project = res[1] ? res[1] : 'abc'
	          dispatch({ type: 'getData', payload: { project } })
	        }
	      })
		},
		loadData({dispatch}){
			dispatch({type: 'fetchData', payload:{id:4}})
		}
	},
	...
}

dispatch 應該是redux的store中的dispatch ,history 應該是 react-router中的history

注意:subscriptions中,往往會用於監聽當前路徑,以便做出相應的操作。這時需要使用history參數。
在做路由匹配是(上面代碼用了正則匹配/pro/(.+)/),你的開發的項目不是放在根目錄時,需要注意匹配的表達式是否需要包含項目的基目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章