如何克服“不可序列化的值检测”

Tac*_*cro 4 firebase redux redux-middleware google-cloud-firestore redux-toolkit

我正在使用 redux-toolkit 实现 react 应用程序,并且在从 firestore 获取数据时出现此类错误。

在路径中的操作中检测到​​不可序列化的值: payload.0.timestamps.registeredAt

在路径中的操作中检测到​​不可序列化的值:payload.0.profile.location

前者的数据类型是firebase.firestore.Timestamp,后者是GeoPoint
我认为两者都可能无法序列化,但我想获取这些数据并将它们显示给用户。
我怎样才能克服这些错误?
根据这个问题,我可能会这样写;

const store = configureStore({
 reducer: rootReducer,
 middleware: [
  ...getDefaultMiddleware({
  serializableCheck: {
     ignoredActionPaths: ['meta.arg', 'meta.timestamp'], // replace the left to my path
     },
  }),
  reduxWebsocketMiddleware,
 // ... your other middleware
],
});
Run Code Online (Sandbox Code Playgroud)

但是我不确定它是否安全,即使是这样,我也不知道如何编写路径动态方式,因为我的有效负载是数组。


如果有人提供一些线索,我将不胜感激。

小智 5

检查一下

使用 redux 工具包时出现错误“在状态中检测到不可序列化的值” - 但不是普通的 redux

相应地,Rahad Rahman 回答我在 store.ts 中做了以下操作:

export default configureStore({
    reducer: {
        counter: counterReducer,
        searchShoes: searchShoesReducer,
    },    
    middleware: (getDefaultMiddleware) => getDefaultMiddleware({
        serializableCheck: false
    }),
});
Run Code Online (Sandbox Code Playgroud)