我有一个组件,其虚拟结构如下所示:
<Header>
My Status
</Header>
<Form>
<Field.Text> Name: </Field.Text>
</Form>
<Footer>
<a> foo link </a>
</Footer>
因此我在组件中的标题将包含我的表单是否已保存的状态,或者在保存时是否遇到任何错误?
我的问题是我查看了redux-form的源代码,在表单的初始化过程中,我观察到了这一点
发送@@redux-form/INITIALIZE
行动。当我重置此表单时,我想清除标题中的所有文本。
这是一个很好的做法,直接抓住行动
我的reducer中的@@redux-form/INITIALIZE
或@@redux-form/RESET
并将文本设置为null?我试图提出这个问题,因为在他们的文档中我找不到任何与他们在reducer中使用动作有关的内容。
如果这不是一个好习惯,那你会碰巧知道这有什么缺点吗?
答案 0 :(得分:0)
是的,基于redux-form github内的一些问题,以及从社区收到的加号的数量,我们可以肯定地说,听reduxform动作是正常的,我相信这是HOC的预期目的之一是减少需要为表单定义的样板操作类型的数量。
基于此链接https://github.com/erikras/redux-form/issues/2459,我们可以肯定地说,在某些时候,其目的是记录redux形式的actionType。
也基于此,https://github.com/erikras/redux-form/issues/2178#issuecomment-283324287
我最终将这样的动作导入了我的reducer中:
import { INIT, RESET } from 'redux-form/lib/actionTypes'
cont foo = (state = {}, action) => {
case INIT:
return {..state}
case default:
return state;
}
注意:仅当您不修改表单状态,而是修改其他一些对等组件(取决于所发出的formAction)时,才这样做(更可能是建议)。