2016-02-26 90 views
0

我有一个操作需要在自己的商店中流动数据,但也需要在配置商店中流动。我需要这个,因为添加的数据不同&它也得到了不同的清除。作用于多个商店的行为

我想知道在这种情况下,如果它会更好地使用联合减速机?或者在多个商店采取行动是可接受的解决方案

import { PAGE_CHANGE_TITLE } from 'actions/types/page.types'; 
import { PROJECT_SELECTED } from 'actions/types/projects.types'; 

const initialState = { 
    pages: { 
    last: {}, 
    current: {}, 
    last5: [], 
    }, 
    project: localStorage.getItem('project') || {}, 
}; 

export function configs(state = initialState, action) { 

    switch (action.type) { 

    case PAGE_CHANGE_TITLE: 

    const last5 = [...state.pages.last5]; 
    last5.unshift(action.data); 
    if (last5.length > 5) { 
     last5.pop(); 
    } 

    return { 
     ...state, 
     pages: { 
     last: { 
      ...state.pages.current, 
     }, 
     current: { 
      ...action.data, 
     }, 
     last5: last5, 
     }, 
    }; 

    case PROJECT_SELECTED: 
    return { 
     ...state, 
     project: { 
     ...action.data, 
     }, 
    }; 

    default: 
    return state; 
    } 
} 

回答