const model = {
namespace: 'article',
state: {
logger: {
sortedInfo: {
order: 'descend',
columnKey: 'create_time',
},
},
},
subscriptions: {
url( {dispatch, history} ) {
history.listen(( {pathname} ) => {
const match = pathToRegexp('/article/:cmsid').exec(pathname)
if (match && match[1]) {
let cmsid = match[1]
dispatch({type: 'loadCmsid2Docid', payload: {cmsid}})// 多次调用
// dispatch({type: 'loadArticleRdmDebugInfo', payload: {cmsid}})// 多次调用
}
});
},
},
effects: {
*loadCmsid2Docid({payload}, {call, put, take, takeLatest}) {
const docid = yield call(loadCmsid2Docid, payload)
console.log('startstartstartstartstart')
let tt1 = yield takeLatest( 'loadCmsid2Docid', model.effects['article/fetchUser'] )
console.log('tt1tt1tt1tt1tt1tt1tt1', tt1)
console.log('endendendendendendendend')
},
*fetchUser(action) {
debugger
},
},
reducers: {
},
}
export default model
请问这段代码,为什么无法使用takeLatest这种高阶函数呢?而且fetchUser函数没有被调用呢,请问哪位老司机可以帮忙指点下?
takeLatest should be used in this way: https://github.com/dvajs/dva/blob/master/docs/API.md#effects
example: https://github.com/nihgwu/react-native-dva-starter/blob/master/app/models/router.js#L24-L40
Woooo! Very nice! The doc I readed is vague. 3Q
Most helpful comment
takeLatest should be used in this way: https://github.com/dvajs/dva/blob/master/docs/API.md#effects
example: https://github.com/nihgwu/react-native-dva-starter/blob/master/app/models/router.js#L24-L40