如何在 redux 或组件函数中处理 AG-Grid API 操作?

How to handle AG-Grid API actions inside redux or component functions?

对于我正在进行的项目,我们使用 AG-Grid 以及从服务器加载的数据。
用户可以选择上传文件,这些文件将在开始上传后立即显示在网格上(带有上传状态)。

目标 是在上传完成后刷新网格,所以当我们的 React Redux asyncThunk 函数成功时。这是因为当上传状态发生变化时,我们会更新网格,这样用户就不必刷新浏览器就可以看到他上传的最新更新。


问题是什么?

我们目前在其他组件中使用 AG-Grid api 引用来触发类似的 AG-Grid 操作(例如重新加载)。
但是,我们不能将该引用传递给我们的 React Redux 切片,因为那里不能有不可序列化的值。


可能的解决方案?

有没有一种方法可以将 AG-Grid api 的引用传递给 React Redux 切片以触发 asyncThunk (https://redux-toolkit.js.org/api/createAsyncThunk) 中的操作?

有没有办法在我们导出一个函数的文件中使用该引用,该函数会触发该 AG-Grid api 引用的操作?所以这可以在 asyncThunk 中调用。


如果还有其他方法可以实现,请告诉我。 谢谢。

上传完成后,您可以通过 thunk 调度一个动作,将此信息添加到 redux 状态(如 state.uploadStatus = 'uploaded' 的形式)。使用 useSelector 在具有 AG-Grid api 引用的组件中访问此 uploadStatus。然后,您可以在 useEffect 挂钩中跟踪 uploadStatus 中的更改,并相应地触发网格刷新。

const uploadStatus = useSelector(uploadStatusSelector)

useEffect (()=> {
   refreshGrid()
}, [uploadStatus]);

如果您要上传多个文件并且每次上传这些文件时都需要刷新网格,则将 uploadStatus 设置为一个数组,然后将 fileId 之类的内容推入数组这些文件中的任何一个都已成功上传。