希望有人能指出我正确的方向来尝试调试这个问题。
我正在将使用react-admin构建的应用程序重构为版本4.0.0.beta-3。但我的自定义表单都无法正常工作。也就是说,当我调用任何新的react-hook-form方法(例如“useFormContext”)时,我会返回null。当我尝试使用“useWatch”获取表单值时,我收到一条错误消息“无法读取 null 的属性(读取“control”)”
根据react-hook-form的文档,这可能表明该元素未随FormContext一起提供。但是,当我构建一个codesandbox来验证问题时,useWatch可以正常工作并返回表单值。 (这是代码和框:https://codesandbox.io/s/crazy-violet-qk7uyh?file=/src/test-resource/TestResourceCreate.tsx https://codesandbox.io/s/crazy-violet-qk7uyh?file=/src/test-resource/TestResourceCreate.tsx )
如果我将代码几乎逐行复制到本地环境中,它就会崩溃,当我调用 useWatch 时寻找“控制”。
我尝试删除node_modules并重新安装,我已经在7.27.0安装了react-hook-form(指定版本react-admin正在使用),但我还没有找到解决方案。
任何有关下一步该做什么/尝试的建议,或者我当地可能出现的问题,将不胜感激。谢谢!
编辑:作为附录:当我使用react-admin表单组件“FormDataConsumer”时,表单值在道具“formData”中正确传递。
为后代回答我自己的问题:
在重构我的应用程序以避免在运行“npm install”时标记 --legacy-peer-deps 后,我能够在我的react-admin自定义表单中按预期使用useFormContext和所有其他react-hook-form方法。
我知道唯一需要遗留对等依赖的包是在 16.9.0 安装 React,而我的应用程序的其余部分依赖于 17.0.2。我不确定这是否是我的问题的根源,或者是否安装了其他旧版对等点,导致其他地方的导入不正确。如果任何有更多经验的人想要分享一些对可能发生的情况的见解以帮助未来的搜索者,请成为我的客人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)