2016-10-24 1 views
3

Ich habe ein paar Klassen, in denen ich Instanzen davon im Redux-Store speichern möchte.Speichern von Klasseninstanzen in redux store

Die Klassen sind Singletons und es gibt nur eine Instanz für jede Klasse.
Und ich speichere sie im Zustand mit dem Namen der Klasse (oder etwas Einzigartiges) als Schlüssel.

Ich kann sie nur gut speichern, aber die Komponenten werden nicht neu gerendert.

Ich denke, es ist, weil ich immer die Instanz mutiert (weil es Singletons)

Wie lagere ich/Verwendung Klasseninstanz in Redux?
Was ist, wenn es sich um eine Singletone-Instanz handelt?

  • bearbeiten

Ich habe schlicht Objekte/Arrays in der Singletone Instanz.
Ah, es gibt auch eine Funktion (Aktion Schöpfer).
(die von redux-Thunk ausgeführt wird)

Eigentlich, wenn das problematisch ist, oder nicht eine bewährte Methode, ich denke, ich Namen des actionCreator im Laden speichern könnten und haben Namen -> actionCreator Karte irgendwo außerhalb von das Geschäft.

Einer der Aktion Schöpfer ist unter

function datetimeStockExtrasForDateRange(date) { 

    return function (dispatch, getState) { 

    const state = getState() 
    const { calendar } = state 
    const calendarPeriod = calendar.calendarPeriod 

    let visibleDates = calendarUtil.visibleDates(date, calendarPeriod) 

    const filteredDates = visibleDates.filter((date) => { 
     var dateFormatted = moment(date).format('YYYY-MM-DD') 
     if (state.dates[dateFormatted] && state.dates[dateFormatted].available_datetime_stock_extras_fetched) { 
     return false 
     } 
     return true 
    }) 

    if (!_.isEmpty(filteredDates)) { 
     const { datetime_stock_rule_set_id } = state.calendar 
     const date_start = filteredDates[0] 
     const date_end = filteredDates[filteredDates.length - 1] 
     dispatch(
     DatetimeStockExtra.fetchAvailableDatetimeStockExtrasForDateRangeAction(
      datetime_stock_rule_set_id, 
      date_start, 
      date_end 
     ) 
     ) 
    } 
    } 
} 
+0

Haben Sie ein Codebeispiel? –

+0

Was haben Sie in Ihren Singletons? – Crysfel

+0

@Crysfel Ich habe die Frage aktualisiert – eugene

Antwort

1

Die Tatsache, dass es ein Singleton mir schon sagt ist, dass es wandelbar ist, und dass Ihre Reduzierungen sind sie direkt statt Projektierung neuer Instanzen davon in Reaktion auf Aktionen zu modifizieren . Dies ist ein Missbrauch von Redux und führt dazu, dass reactive redux keine Änderungen erkennt.

Verwandte Themen