将大请求保留在redux状态

将大请求保留在redux状态,redux,immutable.js,Redux,Immutable.js,我使用immutable.js来保持我的应用程序状态。它由多个组合还原器组成,它们是不可变的映射,如: const initialState = new Map({ data: null, page: 1, ... }); 因此,每当网页上的内容发生变化时,我需要获取、保存某个位置、从中获取数据并更新状态 问题是-在redux中,我在哪里保存原始请求响应? 比方说,我想把它留在州里。我尝试了以下方法: case FETCH_RESPONSE: return state

我使用
immutable.js
来保持我的应用程序状态。它由多个组合还原器组成,它们是不可变的映射,如:

const initialState = new Map({
   data: null,
   page: 1,
   ...
});
因此,每当网页上的内容发生变化时,我需要获取、保存某个位置、从中获取数据并更新状态

问题是-在redux中,我在哪里保存原始请求响应?

比方说,我想把它留在州里。我尝试了以下方法:

case FETCH_RESPONSE:
    return state.merge({
        rawRequestResponse: action.response // very slow, deep conversion to Immutable
    })
case FETCH_RESPONSE:
    return state.set({
        rawRequestResponse: action.response // also slow, it's converted to Immutable, though not deeply
    })
case FETCH_RESPONSE:
    return new Map({
        rawRequestResponse: action.response, // just like above
        ...
    })

但是他们都太慢了。最好的方法是什么?

不确定是否将普通对象传递给
set()
,但如果将键作为字符串传递,则将值作为第二个参数,则不应转换任何内容:

return state.set('rawRequestResponse', action.response)

原始请求真的是你所在州所需要的一部分吗?重新考虑它是否真的需要住在redux商店里。到底有多大?如果您正在处理大量的集合,则考虑向API添加分页并缓存客户端上的集合实体。