我创建了大型应用程序,我需要更多地控制行动的调度。
我知道,我可以检查组件中的条件,当条件不够时,我可以取消调度操作调用,但是当更多的组件必须检查相同的条件时,可能会不舒服。
这样的过程应该是什么样的呢?
我有个主意,但我不确定是个好办法:
Component检查条件,Component调用@Dispatch function属于Facade (大型service)@Dispatch function调用Guard / Middleware,Guard / Middleware 再次检查条件(如果条件不匹配抛出exception)@Dispatch function调用action)
如果这是个好主意。
如何实施这样的警卫呢?
它应该以服务的形式存在还是以箭头函数的形式在参数中接受store?
发布于 2020-03-14 14:43:46
在组件级别上,我想您可以实现自己的过滤器,如果该过滤器处于高度重用状态,则可以将其设置为可重用的可调用运算符。
示例rxjs过滤器
myCompFilter=pipe(filter(x=>x.....))如果您想要普通过滤器,它只是一个普通函数,返回true或false。
filter=(x)=>x>0?对于操作保护,您可以通过包装store.dispatch()来创建自定义分派函数。
customDispatch=(action)=>if(x) store.dispatch()所以把它们结合在一起,你就会得到这样的东西
doSomething.pipe(myCompFilter,tap(()=>customDispatch())还可以通过返回高阶函数使customDispatcher和过滤器更加可定制(也可以称其为部分函数)。
https://stackoverflow.com/questions/60683195
复制相似问题