我在redux工具包中遇到了一个serializableMiddleware问题。我需要在我的redux存储中存储firestore时间戳,并且不希望serializableMiddleware记录此文本:
在状态中检测到不可序列化的值,路径为:path to timestamp
。数值:nt {秒:〉1675422816,纳秒:106000000}查看处理此动作的减速器。
所以我看了一下redux工具包文档中的serializableMiddleware,发现有一个选项isSerializable?: (value: any) => boolean
。当我从这个方法返回true时,value应该认为是可序列化的,但是即使我总是返回true,仍然会将错误记录出来。
我写了函数但它不起作用:
const isSerializable = (value: any) =>
value instanceof Timestamp || isPlain(value);
const serializableMiddleware = createSerializableStateInvariantMiddleware({
isSerializable
})
下面是我如何设置我的商店:
export const setupStore = () => {
return configureStore({
reducer: rootReducer,
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware()
.concat(serializableMiddleware)
})
}
1条答案
按热度按时间t5zmwmid1#
这里的问题是
getDefaultMiddleware()
* 已经 * 添加了可序列化中间件作为默认设置的一部分,您正在创建中间件的 * 第二个 * 示例,但这并没有更改 * 第一个 * 示例。相反,您需要通过向
getDefaultMiddleware()
传递正确的选项来定制第一个示例: