2017-01-30 63 views
0

在我Angular2應用我有添加到重播的評論的減速機:Angular 2 ngrx redurs:無法讀取未定義的屬性concat()?

Replays.reducer.ts:

case ADD_REPLAY: 
    let index_replay = state 
     .map(review => review.id) 
     .indexOf(action.payload.replayTo); 
    return [ 
     ...state.slice(0, index_replay), 
     Object.assign({}, state[index_replay], { 
     replays: [...state[index_replay].replays, action.payload] 
     }), 
     ...state.slice(index + 1) 
    ]; 

    default: 
    return state; 

} 

當評論已經包含重播,我可以添加重播問題內部消除,但是當comment數組中的播放數組爲空時,我有錯誤:無法讀取未定義的屬性連接(可能是由於擴展運算符)。

我該如何避免這種行爲?

回答

1

問題是你正在調用.concat空數組(擴展運算符=== .concat),因此你會得到未定義的錯誤。

嘗試這種情況:

const replays = state.index_replay ? : state.index_replay : [];

這就賦予任一state.index_replay或空數組來重放。

接下來,在您的spread運算符中使用replays數組。

相關問題