可以在Redux状态树中执行不影响任何操作的操作吗?
e.g。
异步请求只响应HTTP代码200或404 ...
答案 0 :(得分:3)
是。 它完全没问题。
如果您的商店写得很好,那么它只会返回之前的价值副本。
那就是说,发起一场毫无作用的事件是没有用的。
Redux教程建议分离动作,动作创建者以及通过动作调用动作创建者的人,正是因为您可以决定将哪些内容发送到商店;没有"点击此处获得50/50的机会我们将更新商店",因为它不再是功能方法的一部分。
答案 1 :(得分:1)
我会说"是的,没关系" - 虽然这是我的看法。
让您随时欢迎进一步扩展您的申请。例如,您可以使用以下内容:
export function fetch(sysId:string) {
return function(dispatch:Function) {
dispatch(fetching());
$.ajax(...)
.fail(e => dispatch(failed()))
.done(data => dispatch(fetched(data)));
}
}
export function failed() {
return { type: 'SERVER/FAILED' };
}
export function fetching() {
return { type: 'SERVER/FETCHING' };
}
export function fetched(data:Object) {
return { type: 'SERVER/FETCHED', data };
}
目前,对于failed
或fetching
操作,您可能无意在您的Reducer中执行任何操作。
然后你意识到你需要一个动画加载器来显示。很简单,因为您已经采取了这些措施。显然有人认为不添加你不需要的任何东西,但我认为对于像这样的普通作品来说它的开销很小。
答案 2 :(得分:0)
它的回应是什么?动作实际上只是设置Redux状态,如果你不需要设置状态,为什么要调用一个动作?在这种情况下,只需在组件中直接执行任何操作即可。