react-final-form - React Final Form 在更改其中一个字段时重新渲染所有字段
问题描述
它写在文档中,即
<Field/>
只要订阅的字段状态发生变化,就会重新呈现。
所以,如果我有几个字段,它们都将被重新渲染,而只更改其中一个。有什么方法可以防止其他字段的重新渲染,目前没有改变?
解决方案
另一种解决方法是使用React.memo
(react version >= 16.6.0)
使每个输入字段成为一个单独的组件,并将其包装在备忘录中。
export default React.memo(MyInputComponent);
如果您要向下传递值MyInputComponent
,则只传递所需的道具值而不是整个表单数据对象。
<MyInputComponent value={formData.myValue} />
这样,MyInputComponent
只有在formData.myValue
发生更改时才会重新渲染。
推荐阅读
- io - Openmpi:未知非连续数据的并行 I/O
- javascript - Angularjs ReferenceError:未定义函数
- mongodb - MongoDB Atlas Search - 搜索字符串中带有“和”条件的多个术语(不是“或”)
- r - 在 RcppArmadillo 中处理极大且稀疏的矩阵
- oracle - 使用 SQL Developer 执行 SQL
- laravel - Laravel HasMany 查询最新入口并返回相关模型
- sql - SQL Order by 和 top 1 对我的代码不起作用,他们只是计算
- python - flake8 仅对代码块禁用 linter
- c# - 接口底层对象的C#流利验证
- shopify - Shopify / Liquid - 拆分后拆分和删除