react-admin v3功能组件

时间:2020-01-17 13:30:02

标签: reactjs ckeditor react-admin

原因

我刚刚升级到react-admin v3,此后由于开关react-final-form的缘故,addField被删除了。这导致了一系列事件和一个我无法以体面的方式解决的问题。

情况

我有一个带有ckeditor5的表单,并且我想保存该表单中的内容。以前的react-admin v2路由是带有addField方法的类组件,该方法引入了input.onChange方法,该方法可用于更新表单中的“记录”。

切换到react-final-form引入了FormDataConsumer组件,必须使用该组件来访问实际的表单(const form = useForm()),因此我可以使用ckeditor5组件。 useForm也会强制切换到功能组件(包装器),从而最终导致无状态组件。由于底层数据集已加载,因此该包装器被加载了多次。这会导致多个ckeditor5实例。

我尝试过的事情

  • 我尝试使用useEffect方法,但失败了,因为useForm在回调中不可用。
  • 我试图更新功能组件中的已加载状态prop,但这没有用,因为包装程序多次调用了功能组件。
  • 其他解决方案,但它们都归结为:功能组件是无状态的

什么可能是解决方案,但我认为这很肮脏,将状态存储在会话变量中...或其他一些全局存储中。

问题

解决这个问题的最优雅的方法是什么?

0 个答案:

没有答案