Redux mit React-Komponenten Verbinden
Theorie
Um eine Verbindung zwischen React-Komponenten und dem Redux-Store herzustellen, kann der Hook useSelector
zum Zugriff auf den State und der Hook useDispatch
zum Auslösen von Aktionen verwendet werden.
Praxis
Nun wird die Counter-Komponente mit dem Redux-Store verbunden.
import React from "react";
import { useSelector, useDispatch } from "react-redux";
import { increment, decrement } from "../redux/actions/counterAction";
const Counter = () => {
const counter = useSelector((state) => state.counter);
const dispatch = useDispatch();
const handleIncrement = () => {
dispatch(increment());
};
const handleDecrement = () => {
dispatch(decrement());
};
return (
<div>
<h2>Counter Value: {counter}</h2>
<button onClick={handleIncrement}>Increment</button>
<button onClick={handleDecrement}>Decrement</button>
</div>
);
};
export default Counter;
Erläuterung des Codes:
- Zeile 2: Import der benötigten Hooks
useSelector
unduseDispatch
aus der Bibliothekreact-redux
. Diese Hooks ermöglichen die Verbindung zwischen React und Redux; - Zeile 3: Import der Action Creator
increment
unddecrement
aus der Datei../redux/actions/counterAction
. Diese Aktionen werden ausgelöst, um den Counter-State im Redux-Store zu aktualisieren; - Zeile 6: Der Hook
useSelector
wird verwendet, um auf dencounter
-State aus dem Redux-Store zuzugreifen. Es wird eine Selektorfunktion als Argument übergeben, die den gewünschten State-Wert zurückgibt; - Zeile 7: Der Hook
useDispatch
wird verwendet, um auf diedispatch
-Funktion von Redux zuzugreifen. Er verweist auf diedispatch
-Funktion, mit der Aktionen an den Redux-Store gesendet werden; - Zeile 9-11: Definition des Event-Handlers
handleIncrement
, der aufgerufen wird, wenn der "Increment"-Button geklickt wird. Die Aktionincrement
wird innerhalb des Handlers mit derdispatch
-Funktion an den Redux-Store gesendet; - Zeile 13-15: Definition des Event-Handlers
handleDecrement
, der aufgerufen wird, wenn der "Decrement"-Button geklickt wird. Die Aktiondecrement
wird innerhalb des Handlers mit derdispatch
-Funktion an den Redux-Store gesendet; - Zeile 17-23: Rendern der JSX-Elemente, einschließlich des aktuellen Counter-Werts und der Buttons zum Erhöhen und Verringern. Die jeweiligen Event-Handler werden an das
onClick
-Attribut der Buttons angehängt.
Hinweis
Dieser Code verbindet eine React-Komponente (
Counter
) mit Redux. Es wirduseSelector
verwendet, um auf den Counter-State zuzugreifen, unduseDispatch
, um Aktionen zur Aktualisierung des States auszulösen. Die Komponente zeigt den Counter-Wert an und stellt Buttons zum Erhöhen und Verringern bereit. Das Klicken auf diese Buttons löst Aktionen aus, die den Redux-Store aktualisieren.
1. Wie wird eine Verbindung zwischen React-Komponenten und dem Redux-Store hergestellt, um auf den Zustand zuzugreifen?
2. Welchen Zweck erfüllt der useSelector
-Hook im Code?
3. Was bewirkt die Funktion handleDecrement
, wenn sie aufgerufen wird?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 4.17
Redux mit React-Komponenten Verbinden
Swipe um das Menü anzuzeigen
Theorie
Um eine Verbindung zwischen React-Komponenten und dem Redux-Store herzustellen, kann der Hook useSelector
zum Zugriff auf den State und der Hook useDispatch
zum Auslösen von Aktionen verwendet werden.
Praxis
Nun wird die Counter-Komponente mit dem Redux-Store verbunden.
import React from "react";
import { useSelector, useDispatch } from "react-redux";
import { increment, decrement } from "../redux/actions/counterAction";
const Counter = () => {
const counter = useSelector((state) => state.counter);
const dispatch = useDispatch();
const handleIncrement = () => {
dispatch(increment());
};
const handleDecrement = () => {
dispatch(decrement());
};
return (
<div>
<h2>Counter Value: {counter}</h2>
<button onClick={handleIncrement}>Increment</button>
<button onClick={handleDecrement}>Decrement</button>
</div>
);
};
export default Counter;
Erläuterung des Codes:
- Zeile 2: Import der benötigten Hooks
useSelector
unduseDispatch
aus der Bibliothekreact-redux
. Diese Hooks ermöglichen die Verbindung zwischen React und Redux; - Zeile 3: Import der Action Creator
increment
unddecrement
aus der Datei../redux/actions/counterAction
. Diese Aktionen werden ausgelöst, um den Counter-State im Redux-Store zu aktualisieren; - Zeile 6: Der Hook
useSelector
wird verwendet, um auf dencounter
-State aus dem Redux-Store zuzugreifen. Es wird eine Selektorfunktion als Argument übergeben, die den gewünschten State-Wert zurückgibt; - Zeile 7: Der Hook
useDispatch
wird verwendet, um auf diedispatch
-Funktion von Redux zuzugreifen. Er verweist auf diedispatch
-Funktion, mit der Aktionen an den Redux-Store gesendet werden; - Zeile 9-11: Definition des Event-Handlers
handleIncrement
, der aufgerufen wird, wenn der "Increment"-Button geklickt wird. Die Aktionincrement
wird innerhalb des Handlers mit derdispatch
-Funktion an den Redux-Store gesendet; - Zeile 13-15: Definition des Event-Handlers
handleDecrement
, der aufgerufen wird, wenn der "Decrement"-Button geklickt wird. Die Aktiondecrement
wird innerhalb des Handlers mit derdispatch
-Funktion an den Redux-Store gesendet; - Zeile 17-23: Rendern der JSX-Elemente, einschließlich des aktuellen Counter-Werts und der Buttons zum Erhöhen und Verringern. Die jeweiligen Event-Handler werden an das
onClick
-Attribut der Buttons angehängt.
Hinweis
Dieser Code verbindet eine React-Komponente (
Counter
) mit Redux. Es wirduseSelector
verwendet, um auf den Counter-State zuzugreifen, unduseDispatch
, um Aktionen zur Aktualisierung des States auszulösen. Die Komponente zeigt den Counter-Wert an und stellt Buttons zum Erhöhen und Verringern bereit. Das Klicken auf diese Buttons löst Aktionen aus, die den Redux-Store aktualisieren.
1. Wie wird eine Verbindung zwischen React-Komponenten und dem Redux-Store hergestellt, um auf den Zustand zuzugreifen?
2. Welchen Zweck erfüllt der useSelector
-Hook im Code?
3. Was bewirkt die Funktion handleDecrement
, wenn sie aufgerufen wird?
Danke für Ihr Feedback!