希望有人能为我指明正确的方向,尝试调试这个问题。
我正在将使用react admin构建的应用程序重构到4.0.0.beta-3版本。但是我的自定义表单都不能正常工作。也就是说,当我调用任何新的react钩子形式方法时,比如";useFormContext";,我回到零。当我尝试使用";useWatch";,我收到一个错误,说"无法读取null的属性(读取"control"(">
根据react hook表单的文档,这可能表明元素没有提供FormContext。然而,当我构建了一个代码沙盒来验证这个问题时,useWatch工作正常,并返回表单值。(这是代码沙盒:https://codesandbox.io/s/crazy-violet-qk7uyh?file=/src/test-resource/TestResourceCreate.tsx(
如果我几乎逐行地将代码复制到我的本地环境中,它就会中断,寻找";控制";当我呼叫useWatch时。
我尝试过删除node_modules并重新安装,我在7.27.0安装了react hook表单(react admin正在使用的声明版本(,但我没有找到解决方案。
对于下一步该做什么/尝试什么,或者我的当地人可能出了什么问题,我们将不胜感激。谢谢
编辑:作为一个附录:当我使用react管理表单组件";FormDataConsumer";,形式值被正确地传递到道具"中;formData";。
为子孙后代回答我自己的问题:
在重构我的应用程序以避免标记后——遗留对等依赖于运行";npm安装";,我能够在我的react admin自定义表单中使用useFormContext和所有其他react钩子表单方法。
据我所知,唯一需要遗留对等依赖关系的软件包是在16.9.0安装React,而我的应用程序的其余部分则依赖17.0.2。我不确定这是否是我的问题来源,或者是否安装了其他遗留对等设备,导致在其他地方导入错误。如果任何有更多经验的人想分享一些关于帮助未来搜索者可能发生的事情的见解,欢迎光临。