2016-04-22 12 views
8

Qual è il consenso su un'azione che interessa più parti dell'albero di stato in Redux?Un'azione Redux può influire su più parti dell'albero di stato?

Ad esempio:

const ADD_POST = 'POST/ADD'; 

function postsReducer(state = initialState, action = {}) { 
    // switch ... 
    case ADD_POST: 
     return { 
      ...state, 
      ...action.result.post 
     } 
} 

function anotherReducer(state = initialState, action = {}) { 
    // switch ... 
    case ADD_POST: 
     return { 
      ...state, 
      post_id: action.result.post.id 
     } 
} 

Sono alla ricerca di consigli su:

azioni che interessano più parti del Redux negozio/stato

risposta

7

Sì, assolutamente. È tutta la ragione per cui esistono le azioni: separare ciò che è accaduto dal punto di vista del componente da ciò che effettivamente accade in termini di cambiamento di stato.

+0

Grazie! Questo concetto mi aiuta davvero a normalizzare la mia struttura statale. Ho iniziato a suggerire di ridurre i nidi, sentivo che aggiungeva n complessità senza alcun guadagno – AndrewMcLagan

-1

Sì, è ok. Se è quello che vuoi succedere.

+1

Puoi elaborare? sembra ok per me. Sto cercando di evitare il modello dei "riduttori annidati" che vedo alcune persone che suggeriscono e implicano. I riduttori annidati sembrano così così complessi. – AndrewMcLagan

+0

Sì, sembra a posto. Se si desidera applicare la propria azione a una sola parte dell'albero di stato e tuttavia utilizzare lo stesso riduttore per parti diverse, sarà necessario un modo per ottenerlo. Quello che descrivi è ciò che accade di default. – Tom

+0

È assurdo pensare che tutti i riduttori siano invocati a ogni cambio di stato. Sembra intenso per la CPU – AndrewMcLagan