In diesem github redux example wird ein Dispatch des Ereignisses ADD_TODO verwendet, um eine Aufgabe hinzuzufügen. Während des Debugging habe ich herausgefunden, dass das Hinzufügen einer Aufgabe sowohl die reducersTodos und Sichtbarkeitsfilter aufgerufen wird.Warum ein Versand zu einem Reduzierer bewirkt, dass alle Minderer aufgerufen werden?
Wie kann ich nenne nur die todos Minderer und nicht visibilityFilter Minderer, wenn ich eine Aufgabe hinzufügen. Auch der visibilityFilter Reducer, wenn ich ein Ereignis vom Typ SET_VISIBILITY_FILTER gesendet habe.
Ich habe nur das Repo geklont und nichts verändert. Ich habe eine console.log für 'SET_VISIBILITY_FILTER' Aktion und' ADD_TODO' hinzugefügt. Wenn ich eine Aufgabe hinzufüge, protokolliert es nichts von 'SET_VISIBILITY_FILTER' Reduzierer –
Ich habe das Konsolenprotokoll nicht verwendet, sondern direkt in Google Chrome Debugger debuggt. Sie können reproduzieren, indem Sie (1) Breakpoints in beide Reduzierungen setzen, bevor die switch-Anweisung (2) auf die Benutzeroberfläche im Browser gehen (http: // locahost: 3000, wenn Sie den Befehl npm start ausführen) und eine Aufgabe hinzufügen 'Testaufgabe' im Bearbeitungsfeld. Sie werden sehen, dass beide Reduzierungen Pausen bekommen, aber nur die Aktion im Todos Reducer ausgeführt wird. –
Ist das nicht, weil 'combineReducers()' die Reduzierungen analysiert und sie nicht wirklich ausführt? –