Benötigt jedes Attribut einen Reduzierer?
P粉124070451
P粉124070451 2023-08-17 14:47:45
0
1
431
<p>Ich folge dieser Anleitung, um eine Zahl zu erhöhen. </p> <p>Es funktioniert, aber jetzt möchte ich es auf etwa 100 Konfigurationswerte implementieren. Muss ich counterSlice.js 100 Mal kopieren oder muss ich die Nummer durch ein Objekt mit 100 Eigenschaften ersetzen? </p> <p>counterSlice.js</p> <pre class="brush:php;toolbar:false;">export const counterSlice = createSlice({ Name: 'Zähler', Ausgangszustand: { Wert: 0, }, Reduzierstücke: { Inkrement: (Zustand) => // Redux Toolkit ermöglicht es uns, „Modifikations“-Logik in Reduzierern zu schreiben. Der Status wird nicht wirklich geändert, da die Immer-Bibliothek verwendet wird. // Es erkennt Änderungen am „Entwurfsstatus“ und generiert basierend auf diesen Änderungen einen brandneuen unveränderlichen Status. // Darüber hinaus erfordern diese Funktionen keine Return-Anweisung. Zustand.Wert += 1 }, dekrementieren: (state) => state.value -= 1 }, incrementByAmount: (state, action) => state.value += action.payload }, }, }) // Aktionsersteller für jede Case-Reduction-Funktion generieren export const { inkrementieren, dekrementieren, inkrementierenByAmount } = counterSlice.actions Exportieren Sie den StandardcounterSlice.reducer</pre> <p><br /></p>
P粉124070451
P粉124070451

Antworte allen(1)
P粉404539732

在某些情况下,明确为每个状态字段创建函数可能是明智的。但是如果你确实有大约100个状态字段,那么你需要采用更通用的方法。

我建议在reducer函数的payload中包含一个keyvalue字段。

export const configSlice = createSlice({
  name: 'config',
  initialState: {},
  reducers: {
    setConfigValue: (state, action) => {
      const { key, value } = action.payload;

      state[key] = value;
    },
  },
})

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage