在操作中检测到不可序列化的值(redux-toolkit)

问题描述 投票:0回答:1

在商店中操作的有效负载中,我使用 File 类型存储下载的文件,然后该文件将在 saga 中通过验证

  const form = new FormData();
 
   if (privateKey && privateKey instanceof Blob) {
     const blob = new Blob([privateKey], { type: 'multipart/form-data' });
     form.append('privateKey', blob);   

然后发送到后台

每次下载文件后控制台都会出现错误

enter image description here

我该如何修复它? 禁用可序列化检查 - 对我来说这不是个好主意

javascript reactjs typescript redux redux-toolkit
1个回答
0
投票

您当然不想完全禁用可串行性检查,但您可以配置可串行性中间件以忽略特定操作(以及其他)。

const store = configureStore({
  ...
  middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware({
      serializableCheck: {
        ignoredActions: [
          // the action with non-serializable payload
          // e.g. "actionWithFilePayload"
        ],
      },
    }),
});

您可能还需要忽略存储的任何不可序列化状态。

const store = configureStore({
  ...
  middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware({
      serializableCheck: {
        ignoredActions: ["actionWithFilePayload"],
        ignoredPaths: ["stateWithFile"],
      },
    }),
});
© www.soinside.com 2019 - 2024. All rights reserved.