我有一个可以下载文件列表的应用程序,因此我可以调度动作(使用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的后端。
我知道最好的方法就是行动,但是我还没有回应:/有任何想法吗?
答案 0 :(得分:1)
case GET_FILE_LIST:
return Object.assign({}, state, {
files: action.payload.data.output
fileIds: action.payload.data.output.map(item=> item.id);
})
如果以这种方式进行操作,我看不出有任何副作用的任何原因。