2017-01-30 44 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数组。

相关问题