Redux将对象数组转换为哈希树

时间:2017-10-03 00:32:38

标签: redux react-redux

以下是我正在使用的代码:

const initialState = {
    _requestStatus: null,
    data: {
        domains: {},
    },
};

const transformCustomDomainsData = (state, json) => {
    const { response } = json;
    return {
        domains: {
            ...state.data.domains,
            ...response.map(resp => ({
                id: resp.id,
                domain: resp.domain,
                context: resp.context,
            })),
        },
    };
};

我正在尝试提供将初始fetch reducer响应转换为哈希树的代码。

这样的事情:

const initialState = {
  byHash: {
    '1': {id: '1', content: {title: 'item 1'}},
    '2': {id: '2', content: {title: 'item 2'}},
    '3': {id: '3', content: {title: 'item 3'}}
  }
}

byHash中的键是数组中每个项的id,值是来自服务器的json响应中的每个对象。

1 个答案:

答案 0 :(得分:0)

想出来......

const transformCustomDomainsData = (state, json) => {
    const { response } = json;
    return {
        domains: {
            ...state.data.domains,
            ...response.reduce((obj, resp) => {
                obj[resp.id] = resp;
                return obj;
            }, {}),
        },
    };
};