递归redux减少器是反模式吗?

时间:2019-08-26 15:54:11

标签: reactjs recursion redux react-redux

我已经读到“在化简器中调度动作是一种反模式” Can I dispatch an action in reducer?),但是具有递归化简器也是反模式吗?

Reducer不仅仅是返回新状态的函数吗?据我了解,“调度”只是以状态和动作作为参数来调用化简器。如果我在reducer内称为reducer,那与在reducer内这样反模式进行调度一样吗?

我们来看下面的例子。我有一个带有条件渲染的表单。

状态具有以下接口:

MQL4

其中values是存储所有值的对象,而conditionalRenderings是存储与条件渲染有关的所有对象的obj。 conditionalsByFormElementId是一个对象,该对象描述表单元素值的更新如何影响其他表单元素的呈现。条件可以是例如字符串的最大长度,或匹配某些正则表达式。

所以减速器是这样的:

interface FormState{
   values:{
     [formElementId]: string | undefined
   },
   conditionalRenderings: {
     conditionalsByFormElementId:{
        [formElementId: string]: {
            renderIf: RenderCondition,
            affectedFormElementId: string
        }
     }
     shouldRender:{
       [formElementId]: boolean
     }
   }
}

如果调用reducer是反模式的,我应该如何解决此问题?

0 个答案:

没有答案