在dva中我们可以在Modal中实现事件监听,通过在modal中添加一个 subscriptions,并且在里面创建一个setup函数
{
namespace: 'infoArea',
state: {
},
subscriptions: {
setup (vlaue) {
console.log(vlaue)
}
},
effects: {
},
reducers: {
},
}
这个set函数只接受两个参数,一个是dispatch一个是history,在代码里面我们把value打印出来可以看到
所以我们一般都是这样来监听路由的
subscriptions: {
setup ({dispatch, history}) {
history.listen(( pathname ) => {
console.log(pathname)
})
}
},
在路由匹配过程中我们需要时用一个包,叫做 path-to-regexp,可以自己npm install一下,
这个包的一般用法就是像这样
subscriptions: {
setup ({dispatch, history}) {
history.listen(( location ) => {
const match = pathToRegexp('/gridInfoManage/:id').exec(location.pathname)
})
}
},
exec前面的会把路由转换成一个正则,然后调用正则的exec来匹配我们的路由, 匹配成功就返回一个match对象,里面具体是什么可以自己打印一下