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是有效的。

+0

那么,首先我犯了一个错字。 action.data.data实际上是action.payload.data.data,它返回一个对象数组。每个对象都与一个gif有关。但是我只需要每个对象的gif url,所以我的目标是返回一个数组或对象这个问题,gif网址。 – sterg