【发布时间】:2019-07-03 03:08:44
【问题描述】:
我正在做一个需要将 redux-form 升级到 react-final-form 的项目。我只是想知道该任务是否有任何文档。
【问题讨论】:
标签: reactjs ecmascript-6 react-final-form
我正在做一个需要将 redux-form 升级到 react-final-form 的项目。我只是想知道该任务是否有任何文档。
【问题讨论】:
标签: reactjs ecmascript-6 react-final-form
编辑:??? 现在有Migration Guide!! ???
我本来打算制作一个迁移指南,但它太简单了,以至于我从来没有找到这样做的动力。但是我会在这里为所有通过 Google 找到这个出色的 SEO 诱饵的人写一点。
您可以在表单组件中使用 ? React Final Form 的<Form> 组件,而不是使用 HOC 来“装饰”您的表单组件,以通过渲染道具为您提供所有表单状态。 Redux Form 中的大多数配置内容直接映射到 <Form> 的 props,例如initialValues、onSubmit等
<Field> API 几乎相同,但还有一个额外的好处是您可以通过渲染道具定义字段的渲染方式内联(使用“fat箭头”函数作为 Redux 表单中的 component 道具是被禁止的,这是一个常见的陷阱)。 ? React Final Form 有一些额外的字段状态位,例如 dirtySinceLastSubmit,可以派上用场。
默认情况下,Redux Form 不会在每次值更改时重新呈现整个表单,如果您需要实时使用 getFormValues() 选择器,则会强制您使用它们。默认情况下,React Final Form 确实在每次值更改时重新呈现,因为对于大多数小型表单来说,这很好。但是? React Final Form 允许通过向<Form> 提供subscription 属性来微调重新渲染,准确指定要重新渲染的表单状态的哪些部分(切片)。然后,每当您在 Redux Form 中使用选择器时,您都会在 ? React Final Form 中使用 <FormSpy> 组件,它允许您订阅(“选择”)部分表单状态以进行重新渲染。
正如另一个答案中的链接,this talk 很好地解释了差异。更多会谈将在 2019 年晚些时候进行。
【讨论】: