2017-10-21 254 views
0

所以我剛剛開始使用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; 
    } 
} 

回答

0

state = null看起來有點不對,它通常應該默認爲某種initialState對象。那麼在你的情況下,並不清楚_.forOwn應該返回什麼。你想改變action.data.data嗎?如果是這樣,也許檢查是否真的發生。另外你的reducer返回的狀態應該是一個對象,我不認爲當你返回一個數組時,redux是有效的。

+0

那麼,首先我犯了一個錯字。 action.data.data實際上是action.payload.data.data,它返回一個對象數組。每個對象都與一個gif有關。但是我只需要每個對象的gif url,所以我的目標是返回一個數組或對象這個問題,gif網址。 – sterg