Warum verwenden Sie nicht eine einzige Reducer-Funktion, um Entitäten zu einem Redux-Store hinzuzufügen, zu aktualisieren und zu entfernen? Es könnte einfach eine action.payload.table-Eigenschaft verwenden, um die richtige "Tabelle" zu identifizieren, die im Geschäft verwendet werden soll.Verwenden Sie einen einzigen Redux Reducer für alle CRUD-Aktionen?
Ich habe dieses Muster noch nie in Beispielen, Blog-Posts usw. gesehen. Im Gegenteil, die meisten Beispiele haben Aktionen zum Umschalten eines einzelnen Feldes auf einer Entität, wie zum Beispiel ein "Fertig" -Flag auf einem Todo. Die Menge an Wiederholungen, die in einer großen App erforderlich wäre, hat mich davon abgehalten, Redux zu verwenden, also hoffe ich, dass dies machbar ist.
Zum Beispiel:
function entityReducer(state, action) {
//Action payload includes the entity "type" or "table" name
switch(action.type) {
case 'CREATE_ENTITY': {
...
}
case 'UPDATE_ENTITY': {
...
}
...
}
}
Normalerweise ist das die Art, wie Sie einen Reducer strukturieren, und es werden immer noch 4 Aktionen benötigt :) Schauen Sie sich MobX an, vielleicht mehr nach Ihrem Geschmack. –
@OriDrori bietet MobX generische CRUD Reducer für Objekte? es war nicht klar für mich nach einem kurzen Blick auf MobX – ciekawy
@ciekawy - MobX ist ein anderer Staats-Manager. Es ist kein Reducer. –