-4
import { Blog } from './app.model';
import { ActionReducer, Action } from '@ngrx/store';
import * as _ from 'underscore';
export const LOAD_BLOGS = 'LOAD_BLOGS';
export const SAVE_COMMENT = 'SAVE_COMMENT';
export interface AppState {
blogs : Blog[]
}
export const initialState : AppState = {
blogs : []
};
var a;
export const reducer = (state : AppState = initialState, action :Action) => {
switch (action.type) {
case LOAD_BLOGS:
return Object.assign({}, state, {
blogs : action.payload
});
case SAVE_COMMENT:
const {title, comment} = action.payload;
return state.blogs.map(states =>{
if(states.title === action.payload.title){
console.log(states);
return Object.assign({}, states ,{ comment : [...states.comment , action.payload.comment]});
}
return Object.assign({}, states);
});
default:
return state;
}
}
商店之前SAVE_COMMENT ACTIONObject.assign()具複雜對象Angular2 NGRX /存儲
{blogs : [{id: 1, "title" : "one", "comment" : ["oneC", "twoC"]}, {id: 2, "title" : "two", "comment" : ["oneC", "TwoC"]}]}
STORE後COMMENT 「ThreeC」 SAVE_COMMENT ACTION與標題 「二」
博客[{id: 1, "title" : "one", "comment" : ["oneC", "twoC"]},{id: 2, "title" : "two", "comment" : ["oneC", "TwoC", "ThreeC"]}]
outter blogs應該包含對象數組的對象不存在,而只是一個數組o f對象與更新的博客。
如果你知道'Object.assign()'那麼你嘗試過什麼? – Jai
如果緊急,請儘可能清楚地說明問題,而不是添加緊急文本。 –
我已經更新了這個問題,請看看.. –