Redux Reducer - 状态
问题描述:
所以我刚刚开始使用redux.I试图从API获取一些GIF。
我的目标是返回一个img urls数组,而不是整个响应数据。但是,如果我尝试迭代并返回每个图像,我的状态仍然为空。如果我使用返回整个响应的return action.payload.data.data;
,那么这可以工作,但我只想获取img网址。
这里是相应的减速器。Redux Reducer - 状态
import _ from 'lodash';
export default function(state = null,action) {
switch(action.type) {
case 'FETCH_GIF':
_.forOwn(action.payload.data.data, function(value, key) {
var img = value.images.downsized.url;
return img;
});
// return action.payload.data.data;
default:
return state;
}
}
答
state = null看起来有点不对,它通常应该默认为某种initialState对象。那么在你的情况下,并不清楚_.forOwn应该返回什么。你想改变action.data.data吗?如果是这样,也许检查是否真的发生。另外你的reducer返回的状态应该是一个对象,我不认为当你返回一个数组时,redux是有效的。
那么,首先我犯了一个错字。 action.data.data实际上是action.payload.data.data,它返回一个对象数组。每个对象都与一个gif有关。但是我只需要每个对象的gif url,所以我的目标是返回一个数组或对象这个问题,gif网址。 – sterg