Reduxin Yhdistäminen React-Komponentteihin
Teoria
React-komponenttien ja Redux-kaupan yhdistämiseksi voidaan käyttää useSelector-hookia tilan lukemiseen ja useDispatch-hookia toimintojen lähettämiseen.
Käytännön esimerkki
Seuraavaksi yhdistetään Counter-komponentti Redux-kauppaan.
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;
Koodin selitys:
- Rivi 2: Tuodaan tarvittavat hookit
useSelectorjauseDispatchreact-redux-kirjastosta. Näiden hookien avulla yhdistetään React ja Redux; - Rivi 3: Tuodaan
increment- jadecrement-toimintojen luojat tiedostosta../redux/actions/counterAction. Näitä toimintoja käytetään laskurin tilan päivittämiseen Redux-kaupassa; - Rivi 6:
useSelector-hookilla luetaancounter-tila Redux-kaupasta. Argumenttina annetaan valintafunktio, joka palauttaa halutun tilan arvon; - Rivi 7:
useDispatch-hookilla saadaan käyttöön Reduxindispatch-funktio. Se viittaadispatch-funktioon, jota käytetään toimintojen lähettämiseen Redux-kauppaan; - Rivit 9–11: Määritellään tapahtumankäsittelijä
handleIncrement, joka kutsutaan, kun "Increment"-painiketta painetaan. Toimintoincrementlähetetään Redux-kauppaandispatch-funktiolla; - Rivit 13–15: Määritellään tapahtumankäsittelijä
handleDecrement, joka kutsutaan, kun "Decrement"-painiketta painetaan. Toimintodecrementlähetetään Redux-kauppaandispatch-funktiolla; - Rivit 17–23: Renderöidään JSX-elementit, mukaan lukien nykyinen laskurin arvo sekä painikkeet arvon kasvattamiseen ja pienentämiseen. Tapahtumankäsittelijät liitetään painikkeiden
onClick-attribuutteihin.
Huomio
Tämä koodi yhdistää React-komponentin (
Counter) Reduxtiin. Se käyttääuseSelector-hookia laskurin tilan lukemiseen jauseDispatch-hookia toimintojen lähettämiseen tilan päivityksiä varten. Komponentti näyttää laskurin arvon ja tarjoaa painikkeet arvon kasvattamiseen ja pienentämiseen. Painikkeiden painaminen laukaisee toiminnot, jotka päivittävät Redux-kaupan.
1. Miten muodostetaan yhteys React-komponenttien ja Redux-kaupan välille tilan käyttämistä varten?
2. Mikä on useSelector-hookin tarkoitus koodissa?
3. Mitä handleDecrement-funktio tekee, kun sitä kutsutaan?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain how the `useSelector` hook works in this example?
What happens if I click the increment or decrement button?
Can you describe what the `dispatch` function does in this code?
Awesome!
Completion rate improved to 4.17
Reduxin Yhdistäminen React-Komponentteihin
Pyyhkäise näyttääksesi valikon
Teoria
React-komponenttien ja Redux-kaupan yhdistämiseksi voidaan käyttää useSelector-hookia tilan lukemiseen ja useDispatch-hookia toimintojen lähettämiseen.
Käytännön esimerkki
Seuraavaksi yhdistetään Counter-komponentti Redux-kauppaan.
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;
Koodin selitys:
- Rivi 2: Tuodaan tarvittavat hookit
useSelectorjauseDispatchreact-redux-kirjastosta. Näiden hookien avulla yhdistetään React ja Redux; - Rivi 3: Tuodaan
increment- jadecrement-toimintojen luojat tiedostosta../redux/actions/counterAction. Näitä toimintoja käytetään laskurin tilan päivittämiseen Redux-kaupassa; - Rivi 6:
useSelector-hookilla luetaancounter-tila Redux-kaupasta. Argumenttina annetaan valintafunktio, joka palauttaa halutun tilan arvon; - Rivi 7:
useDispatch-hookilla saadaan käyttöön Reduxindispatch-funktio. Se viittaadispatch-funktioon, jota käytetään toimintojen lähettämiseen Redux-kauppaan; - Rivit 9–11: Määritellään tapahtumankäsittelijä
handleIncrement, joka kutsutaan, kun "Increment"-painiketta painetaan. Toimintoincrementlähetetään Redux-kauppaandispatch-funktiolla; - Rivit 13–15: Määritellään tapahtumankäsittelijä
handleDecrement, joka kutsutaan, kun "Decrement"-painiketta painetaan. Toimintodecrementlähetetään Redux-kauppaandispatch-funktiolla; - Rivit 17–23: Renderöidään JSX-elementit, mukaan lukien nykyinen laskurin arvo sekä painikkeet arvon kasvattamiseen ja pienentämiseen. Tapahtumankäsittelijät liitetään painikkeiden
onClick-attribuutteihin.
Huomio
Tämä koodi yhdistää React-komponentin (
Counter) Reduxtiin. Se käyttääuseSelector-hookia laskurin tilan lukemiseen jauseDispatch-hookia toimintojen lähettämiseen tilan päivityksiä varten. Komponentti näyttää laskurin arvon ja tarjoaa painikkeet arvon kasvattamiseen ja pienentämiseen. Painikkeiden painaminen laukaisee toiminnot, jotka päivittävät Redux-kaupan.
1. Miten muodostetaan yhteys React-komponenttien ja Redux-kaupan välille tilan käyttämistä varten?
2. Mikä on useSelector-hookin tarkoitus koodissa?
3. Mitä handleDecrement-funktio tekee, kun sitä kutsutaan?
Kiitos palautteestasi!