2015-12-25 3 views
2

В этом примере я использую действие под названием ADD_TODOДолжны ли действия в Redux быть уникальными?

import { createStore, combineReducers } from 'redux'; 

function todos(state, action) { 
    state = state || []; 
    switch (action.type) { 
     case 'ADD_TODO': 
      return state.concat([ action.text ]); 
     default: 
      return state; 
    } 
} 

function counter(state, action){ 
    state = state || 0; 
    switch (action.type){ 
     case 'INCREMENT': 
      return state+1; 
     case 'DECREMENT': 
      return state-1; 
     case 'ADD_TODO': 
      return state+100; 
     default: 
      return state; 
    } 
} 

var app = combineReducers({ 
    todos: todos, 
    counter: counter 
}); 

var store = createStore(app); 
store.dispatch({ type: 'ADD_TODO': text: 'buy eggs' }); 

Эта причина как «Todos» и «счетчик» редукторы для запуска. Должен ли я делать все редукторы уникальными действиями, если я не намеревался это сделать?

Как мы можем реализовать это с несколькими редукторами, которые почти делают то же самое? Например, несколько счетчиков могут иметь «INCREMENT» и «DECREMENT».

Должны ли указывать промежуточные действия?

например: "POINT_INCREMENT", "POINT_DECREMENT".

ответ

0

Нет ничего неправильного в том, что разные редукторы реагируют на одно и то же действие - например, если вы обновите все состояние сразу. Но да, если у вас есть два счетчика, которые соответствуют различным вещам, вы, вероятно, захотите разработать схему именования, чтобы различать. Но я думаю, что имена действий, вероятно, должны иметь некоторое существительное, чтобы указать, к чему они относятся.

Смежные вопросы