用 Form 包装的网格库支持自定义渲染器不起作用

Grid library wrapped with Form is that support custom renderers not working

我有一个使用 ag-grid 构建的最终形式支持的网格。 Ag-grid 采用渲染,在我的例子中是用 FormSpy 包裹的字段。使用 final-form 的 pre-hooks 版本有效,但我遇到了一些问题,所以我升级到最新版本并收到“[X] 必须在组件内部使用”错误。

我使用了 React devtools,果然,我的自定义 Fields 渲染器/编辑器被移出上下文,作为树末端的叶子。我的问题是,是否有任何解决方法可以使这项工作正常进行?有没有办法订阅特定的上下文?我知道有点反模式,但我 运行 缺乏想法。

例子

这是带有较旧最终形式软件包的版本 -- https://codesandbox.io/s/final-form-ag-grid-lbq7f

我在使用 formik 时遇到问题,因为 ag-grid-react 不支持没有道具的 React 上下文 API,即 reactNext={true}。另一个建议不要将 gridApi 置于状态,而是将 ref 传递给 AgGridReact,例如:

  const gridApi = useRef();

  <AgGridReact
    {...}
    ref={gridApi}
  />