1

它写在文档中,即

<Field/>只要订阅的字段状态发生变化,就会重新呈现。

所以,如果我有几个字段,它们都将被重新渲染,而只更改其中一个。有什么方法可以防止其他字段的重新渲染,目前没有改变?

4

2 回答 2

3

另一种解决方法是使用React.memo(react version >= 16.6.0)

使每个输入字段成为一个单独的组件,并将其包装在备忘录中。

export default React.memo(MyInputComponent);

如果您要向下传递值MyInputComponent,则只传递所需的道具值而不是整个表单数据对象

<MyInputComponent value={formData.myValue} />

这样,MyInputComponent只有在formData.myValue发生更改时才会重新渲染。

于 2020-08-04T11:04:27.540 回答
2

是的,那是因为您的整个表单正在重新呈现。您的问题正是最终形式从头开始设计以允许细粒度渲染控制的原因。

这是我上个月解释它的视频。

查看如何执行此操作的示例。

于 2020-03-13T17:14:59.190 回答