Obecnie uczę się koncepcji hooków w Reakcie i próbuję zrozumieć poniższy przykład.
import { useState } from 'react';
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
Powyższy przykład zwiększa licznik w samym parametrze funkcji obsługi. Co zrobić, jeśli chcę zmodyfikować wartość licznika w funkcji obsługi zdarzeń
Rozważ poniższy przykład
setCount = () => {
//how can I modify count value here. Not sure if I can use setState to modify its value
//also I want to modify other state values as well here. How can I do that
}
<button onClick={() => setCount()}>
Click me
</button>
javascript
reactjs
react-native
react-hooks
Hemadri Dasari
źródło
źródło
useState
jest zaimplementowany. Oto definicja od wersji 16.9 .Odpowiedzi:
Uchwyty React to nowy sposób (wciąż rozwijany) uzyskiwania dostępu do podstawowych funkcji reakcji, takich jak
state
bez konieczności używania klas, w twoim przykładzie, jeśli chcesz zwiększyć licznik bezpośrednio w funkcji obsługi bez określania go bezpośrednio w właściwościonClick
, mógłby zrobić coś takiego:i onClick:
Szybko wyjaśnijmy, co się dzieje w tej linii:
useState(0)
zwraca krotkę, w której pierwszy parametrcount
jest bieżącym stanem licznika isetCounter
jest metodą, która pozwoli nam zaktualizować stan licznika. Możemy użyćsetCounter
metody, aby zaktualizować stancount
dowolnego miejsca - w tym przypadku używamy jej wewnątrzsetCount
funkcji, w której możemy zrobić więcej rzeczy; idea haków jest taka, że jesteśmy w stanie utrzymać nasz kod bardziej funkcjonalny i unikać komponentów opartych na klasach, jeśli nie są one pożądane / potrzebne.Napisałem cały artykuł o hakach z wielu przykładów (w tym liczników), takich jak ten codepen , zrobiłem wykorzystanie
useState
,useEffect
,useContext
, i niestandardowych haków . Mógłbym uzyskać więcej szczegółów na temat tego, jak działają hooki w tej odpowiedzi, ale dokumentacja bardzo dobrze objaśnia podpięcie stanu i inne szczegóły, mam nadzieję, że to pomoże.aktualizacja: Haki nie są już propozycją , ponieważ wersja 16.8 jest już dostępna do użycia, w witrynie Reacta jest sekcja, która zawiera odpowiedzi na niektóre z często zadawanych pytań .
źródło
setSomething
, jeśli spróbuję użyćsomething
bezpośrednio później, wydaje się, że nadal ma starą wartość ...useState
jest jednym z wbudowanych zaczepów reagujących dostępnych w0.16.7
wersji.useState
należy stosować tylko wewnątrz elementów funkcjonalnych.useState
jest sposobem, jeśli potrzebujemy stanu wewnętrznego i nie musimy implementować bardziej złożonej logiki, takiej jak metody cyklu życia.Należy pamiętać, że
useState
wywołanie zwrotne hook w celu aktualizacji stanu zachowuje się inaczej niż komponentythis.setState
. Aby pokazać różnicę, przygotowałem dwa przykłady.Nowy obiekt jest tworzony, gdy
setUserInfo
używane jest wywołanie zwrotne. Zauważ, że straciliśmylastName
kluczową wartość. Aby to naprawić, mogliśmy przekazać funkcję wewnątrzuseState
.Zobacz przykład:
Więcej informacji można
useState
znaleźć w oficjalnej dokumentacji .źródło
Składnia
useState
hooka jest prosta.const [value, setValue] = useState(defaultValue)
Jeśli nie znasz tej składni, przejdź tutaj .
Polecam przeczytanie dokumentacji . Istnieją doskonałe wyjaśnienia z przyzwoitą liczbą przykładów.
źródło
useState
jest jednym z haków dostępnych w React 16.8.0. W zasadzie pozwala ci zmienić twoje bezstanowe / funkcjonalne komponenty na takie, które mogą mieć swój własny stan.Na bardzo podstawowym poziomie jest używane w ten sposób:
To z kolei pozwala wywołać
setLoading
przekazanie wartości logicznej. To fajny sposób na posiadanie „stanowego” elementu funkcjonalnego.źródło
useState()
jest hakiem React. Haki umożliwiają użycie stanu i zmienności wewnątrz komponentów funkcji.Chociaż nie możesz używać punktów zaczepienia wewnątrz klas, możesz opakować komponent klasy funkcją numer jeden i użyć z niego punktów zaczepienia. To świetne narzędzie do migracji komponentów z klasy do formy funkcji. Oto pełny przykład:
W tym przykładzie użyję komponentu licznika. To jest to:
Jest to prosty składnik klasy ze stanem zliczania, a aktualizacja stanu odbywa się za pomocą metod. Jest to bardzo powszechny wzorzec w komponentach klas. Pierwszą rzeczą jest owinięcie go komponentem funkcji o tej samej nazwie, który deleguje wszystkie swoje właściwości do opakowanego komponentu. Musisz także wyrenderować opakowany komponent w funkcji return. Oto ona:
To jest dokładnie ten sam komponent, z takim samym zachowaniem, tą samą nazwą i tymi samymi właściwościami. Teraz podnieśmy stan liczenia do składnika funkcji. Oto jak to działa:
Zauważ, że metoda
inc
nadal istnieje, nikomu nie zaszkodzi, w rzeczywistości jest martwym kodem. To jest idea, po prostu podnoś stan. Po zakończeniu możesz usunąć komponent klasy:Chociaż umożliwia to użycie haków wewnątrz komponentów klas, nie polecałbym tego robić, chyba że migracja jest taka, jak w tym przykładzie. Mieszanie składników funkcji i klas spowoduje bałagan w zarządzaniu stanem. mam nadzieję, że to pomoże
Z poważaniem
źródło
useState () to przykład wbudowanego hooka w React, który pozwala używać stanów w komponentach funkcjonalnych. Nie było to możliwe przed React 16.7.
Funkcja useState to wbudowany punkt zaczepienia, który można zaimportować z pakietu reagowania. Pozwala na dodanie stanu do komponentów funkcjonalnych. Używając hooka useState wewnątrz komponentu funkcji, możesz stworzyć stan bez przełączania się na komponenty klas.
źródło
Haczyki to nowa funkcja w programie
React v16.7.0-alpha
useState
to „Hak”.useState()
ustaw wartość domyślną dowolnej zmiennej i zarządzaj w komponencie funkcji (funkcje PureComponent).ex : const [count, setCount] = useState(0);
ustawić domyślną wartość count 0. iu można użyćsetCount
toincrement
lubdecrement
wartość.onClick={() => setCount(count + 1)}
zwiększyć wartość licznika. DOCźródło
Dzięki Loelsonk, zrobiłem to
źródło
useState to punkt zaczepienia, który umożliwia dodanie stanu do składnika funkcjonalnego. Przyjmuje argument, który jest początkową wartością właściwości stanu i zwraca bieżącą wartość właściwości stanu oraz metodę, która jest w stanie zaktualizować tę właściwość stanu.
Oto prosty przykład:
import React, {useState} from react
function HookCounter {
const [count, stateCount]= useState(0)
return(
<div>
<button onClick{( ) => setCount(count+1)}> count{count} </button>
</div>
)
}
useState akceptuje początkową wartość zmiennej stanu, która w tym przypadku wynosi zero i zwraca parę wartości. Bieżąca wartość stanu została nazwana count, a metoda, która może aktualizować zmienną stanu została wywołana jako setCount.
źródło