与 redux 反应 - 改变响应然后推送到商店?

Wordpressor

我有一个应用程序,可以在其中下载文件列表,因此我发送了一个操作(使用 axios):

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

我得到这样的回报:

{
  "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
})

现在,我的问题是 - 如果我只需要将这些文件的 ID 推送到我的 redux 商店怎么办?

我的意思是除了state.myReducer.files我需要之外state.myReducer.fileIds: [1234, 6432]我怎样才能得到响应,改变它然后推送到减速器?

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

我知道做这些事情的最佳地点是在行动中,但我还没有回应:/有什么想法吗?

切坦·贾达夫 CD
case GET_FILE_LIST:
  return Object.assign({}, state, {
    files: action.payload.data.output
fileIds: action.payload.data.output.map(item=> item.id);
})

如果你这样做,我看不出有任何副作用的理由。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章