我正在使用React Hook Form v7,我试图使我的数据表单在页面重新加载时持久化。我阅读了官方的RHF文档,其中建议使用little state machine,我试图实现它,但没有成功。有没有更好的办法?不过……
我使用它遇到的第一个问题是,我的数据是一个复杂的对象,所以updateAction
应该不是那么容易。
第二个问题是我不知道何时以及如何触发updateAction来保存数据。我应该在输入模糊时触发它吗?在输入改变时?
下面是我的测试代码:
我正在使用React Hook Form v7,我试图使我的数据表单在页面重新加载时持久化。我阅读了官方的RHF文档,其中建议使用little state machine,我试图实现它,但没有成功。有没有更好的办法?不过……
我使用它遇到的第一个问题是,我的数据是一个复杂的对象,所以updateAction
应该不是那么容易。
第二个问题是我不知道何时以及如何触发updateAction来保存数据。我应该在输入模糊时触发它吗?在输入改变时?
下面是我的测试代码:
3条答案
按热度按时间flseospp1#
如果在localStorage中持久化对你有用,下面是我实现它的方法。
为持久化数据定义一个自定义钩子
只需在表单组件中使用它
gstyhher2#
我已经遇到了这个问题,并通过创建一个名为
useLocalStorage
的自定义Hook来实现它。但是由于您使用的是React钩子形式,这使得代码有点复杂,而且不够干净!我建议你简单地使用轻包react-hook-form-persist。你唯一需要做的工作就是在
useForm
hook之后添加useFormPersist
hook。成交!bnl4lu3b3#
状态本身不会在页面重新加载时持久化任何数据。
您需要将状态数据添加到本地存储。
然后将其加载回
componentDidMount
上的状态(useEffect和空依赖数组)。