Ich habe einen Bestellstatus.Ist es möglich, Daten im Reduktor auszuwählen und diese Daten in einen der Zustände zu setzen?
Im Bestellstatus gibt es folgende Zustände.
const initialState = {
channel: null,
order: {},
fetching:true,
menu: [],
categories: [],
subcategories: [],
currentCategoryId: 1,
currentSubcategoryId: 5,
currentMenu: [],
};
So ist menu
alle Listen der Nahrungsmittel in der Datenbank. categories
sind eine Liste der Menükategorien und subcategories
sind eine Liste aller Unterkategorien.
Wenn ein Benutzer nun auf den Kategorien-Selektor klickt, ändert sich der Wert currentCategoryId
und es werden Elemente mit der ausgewählten Kategorie-ID angezeigt. Für currentSubcategoryId
funktioniert das gleiche mit currentCategoryId
.
So jetzt versuche ich Seitenumbruch für das Menü zu machen. Um Seitenumbrüche für das Menü zu erstellen, muss ich berechnen, wie viele Menüs es gibt, basierend auf category_id
oder subcategory_id
, zum Beispiel, wenn currentCategoryId
1 ist, wie viele Menüs mit category_id = 1
da sind. Also habe ich currentMenu
gemacht. Was ich versuche mit currentMenu
zu tun ist, dass, wenn ein Benutzer auf Kategorienwähler klickt, um currentCategoryId
zu ändern, er Wert in Reduzierer ändert und Menü erhält, von dem category_id
gleich geändert wird. if-Anweisung Werte zu currentMenu
Array
case Constants.CHANGE_CATEGORY:
return {...state, currentCategoryId: action.categoryId, currentMenu: state.menu.map((menu) => {
if (currentCategoryId === category_id) {
// Put results of if statement to currentMenu array..
}
})};
Also machte ich Minderer Fall wie oben, aber ich weiß nicht, wie kann ich Ergebnisse einfügen ... Wie kann ich das erreichen? Irgendwelche Vorschläge?
Vielen Dank im Voraus.