使用redux做出反应-更改响应,然后推送到商店?

时间:2018-06-25 13:56:18

标签: reactjs redux response axios xor

我有一个可以下载文件列表的应用程序,因此我可以调度动作(使用axios):

PreparedStatement

我得到这样的回报:

Node Package Manager

一旦获得数据,便将其推送到商店:

export function getFileList(foo, bar) {
  return {
    type: GET_FILE_LIST,
    payload: {
      request: {
        url: myApiUrl
      }
    }
  }
}

现在,我的问题是-如果我还需要仅将这些文件的ID推送到我的redux存储中呢?

我的意思是,除了{ "output": [ {"file":"file15166.jpg","id":1234}, {"file":"file231321.jpg","id":6432} (...) ], "foo": "bar", "etc": "etc" } 外,我还需要case GET_FILE_LIST: return Object.assign({}, state, { files: action.payload.data.output }) 。如何获得响应,进行更改,然后推送到减速器?

我当时正在考虑在响应上运行一个循环,但是这样做可能会引起副作用,并且在减速器中是禁止的,对吗?这里正确的方法是什么?当然不包括修改API的后端。

我知道最好的方法就是行动,但是我还没有回应:/有任何想法吗?

1 个答案:

答案 0 :(得分:1)

case GET_FILE_LIST:
  return Object.assign({}, state, {
    files: action.payload.data.output
fileIds: action.payload.data.output.map(item=> item.id);
})

如果以这种方式进行操作,我看不出有任何副作用的任何原因。