2017-02-15 39 views
0

我有一个名为client的实体,另一个名为personclient有一个personId为它的主要人物,我们也有一个与此client以某种方式相关的人员列表。像下面这样:在不同的缩减器中处理泛型API调用

client: { 
    clientId: 1 
    personId: 1 
    people: [{personId: 2}, {personId: 3}] 
} 

假设有一个名为REQUEST_PERSON一个动作,结束后,即分派RECEIVE_PERSON,并在react-router-reduxclient/:clientId/client/:clientId/people/:personId需要获取信息的人分两路..

我有两个减速器,一个用于第一路,另一个用于第二路。如果我在两个人中都听RECEIVE_PERSON,他们会一直更新他们的状态,即使这个动作不适合他们。

我应该针对每种情况采取两种不同的操作,例如REQUEST_CLIENT_PERSON/RECEIVE_CLIENT_PERSONREQUEST_PERSON/RECEIVE_PERSON,它们会调用相同的API路由吗?我可以以某种方式避免这种重复?

回答

1

简答:是的,你应该有两种不同的行为。让两个不同的减速器监听相同的动作类型是你很少想做的事情。我很少说,因为可能有案子,但我从来没有遇到过。

较长的答案涉及如何做到这一点,而不是重复自己。如果您发现您的缩减器和操作执行的是相同的操作,并且您重复了所有代码,则应该设置更高阶的缩减器as explained in the redux documentation

+0

非常感谢,高阶减速器似乎正是我所需要的。 – tpsilva