Ako používať hák useState s poliami?

Dec 18, 2025

Zanechajte správu

TheuseStatehák je základná funkcia v Reacte, ktorá umožňuje funkčným komponentom spravovať stav. Pokiaľ ide o prácu s poľami vuseStateháčik, existuje niekoľko techník a osvedčených postupov, ktoré vám môžu pomôcť efektívne narábať s údajmi. Ako dodávateľ háčikov som na vlastnej koži videl, aké dôležité je porozumieť týmto konceptom, a to nielen v kontexte vývoja Reactu, ale aj v širšom zmysle poskytovania spoľahlivých a efektívnych riešení.

Inicializácia stavu poľa

Ak chcete začať používať pole suseStatehák, najprv ho musíte inicializovať. TheuseStatehook berie počiatočnú hodnotu ako argument, čo môže byť prázdne pole alebo pole s nejakými počiatočnými údajmi.

importovať Reagovať, { useState } z 'reagovať'; const ArrayExample = () => { // Inicializácia stavu prázdneho poľa const [items, setItems] = useState([]); return ( <div> {/* Váš komponent JSX */} </div> ); }; exportovať predvolený ArrayExample;

V tomto príklade vytvoríme stavovú premennúpoložkya jemu zodpovedajúca nastavovacia funkciasetItems. Počiatočná hodnotapoložkyje prázdne pole.

Pridávanie prvkov do poľa

Jednou z bežných operácií je pridávanie prvkov do existujúceho poľa. Pri použitíuseStateháčik, je dôležité si uvedomiť, že by ste nemali mutovať stav priamo. Namiesto toho musíte vytvoriť nové pole s aktualizovanými hodnotami.

importovať Reagovať, { useState } z 'reagovať'; const ArrayExample = () => { const [položky, setItems] = useState([]); const addItem = () => { // Vytvorenie nového poľa s existujúcimi položkami a novou položkou const newItems = [...items, 'Nová položka']; setItems(newItems); }; return ( <div> <button onClick={addItem}>Pridať položku</button> <ul> {items.map((item, index) => ( <li key={index}>{item}</li> ))} </ul> </div> ); }; exportovať predvolený ArrayExample;

VaddItempoužívame operátor spread (...) na vytvorenie nového poľa, ktoré obsahuje všetky existujúce položky zpoložkystav a nová položka. Potom zavolámesetItemss novým poľom na aktualizáciu stavu.

Odstránenie prvkov z poľa

Odstránenie prvkov z poľa tiež vyžaduje vytvorenie nového poľa bez prvku, ktorý chcete odstrániť. Jedným zo spôsobov, ako to urobiť, je použiťfiltermetóda.

Bathroom Accessories Towel Hooksnew england bathroom accessories

importovať Reagovať, { useState } z 'reagovať'; const ArrayExample = () => { const [položky, setItems] = useState(['Položka 1', 'Položka 2', 'Položka 3']); const removeItem = (indexToRemove) => { // Vytvorenie nového poľa bez položky na zadanom indexe const newItems = items.filter((_, index) => index!== indexToRemove); setItems(newItems); }; return ( <div> <ul> {items.map((item, index) => ( <li key={index}> {item} <button onClick={() => removeItem(index)}>Remove</button> </li> ))} </ul> </div> ); }; exportovať predvolený ArrayExample;

VremoveItemfunkciu, používamefiltermetóda na vytvorenie nového poľa, ktoré obsahuje všetky položky okrem položky v zadanom indexe. Potom zavolámesetItemss novým poľom na aktualizáciu stavu.

Aktualizácia prvkov v poli

Aktualizácia prvku v poli je podobná pridávaniu alebo odstraňovaniu prvkov. Musíte vytvoriť nové pole s aktualizovanou hodnotou.

importovať Reagovať, { useState } z 'reagovať'; const ArrayExample = () => { const [položky, setItems] = useState(['Položka 1', 'Položka 2', 'Položka 3']); const updateItem = (indexToUpdate) => { // Vytvorenie nového poľa s aktualizovanou položkou const newItems = [...items]; newItems[indexToUpdate] = 'Aktualizovaná položka'; setItems(newItems); }; return ( <div> <ul> {items.map((item, index) => ( <li key={index}> {item} <button onClick={() => updateItem(index)}>Update</button> </li> ))} </ul> </div> ); }; exportovať predvolený ArrayExample;

VupdateItemnajprv vytvoríme nové pole s rovnakými hodnotami ako mápoložkypomocou operátora spread. Potom položku aktualizujeme na zadanom indexe a zavolámesetItemss novým poľom na aktualizáciu stavu.

Práca s vnorenými poľami

Pri práci s vnorenými poľami platia rovnaké princípy. Na každej úrovni vnorenia musíte vytvoriť nové polia, aby ste sa vyhli priamej mutácii stavu.

import React, { useState } z 'react'; const NestedArrayExample = () => { const [nestedArray, setNestedArray] = useState([ ['Podpoložka 1', 'Podpoložka 2'], ['Podpoložka 3', 'Podpoložka 4'] ]); const updateNestedItem = (outerIndex, innerIndex) => { // Vytvorenie nového vnoreného poľa s aktualizovanou podpoložkou const newNestedArray = [...nestedArray]; const newInnerArray = [...new NestedArray[outerIndex]]; newInnerArray[innerIndex] = 'Aktualizovaná podpoložka'; newNestedArray[outerIndex] = newInnerArray; setNestedArray(newNestedArray); }; return ( <div> <ul> {nestedArray.map((innerArray, externalIndex) => ( <li key={outerIndex}> <ul> {innerArray.map((subitem, innerIndex) => ( <li key={innerIndex}> {subitem} <button onClick={() =>update</buttonIndex}Item) </li> ))} </ul> </li> ))} </ul> </div> ); }; exportovať predvolený príklad NestedArray;

Vaktualizovať NestedItemvytvoríme nové polia na každej úrovni vnorenia na aktualizáciu podpoložky. Potom zavolámeset NestedArrays novým vnoreným poľom na aktualizáciu stavu.

Prípady použitia v aplikáciách v reálnom svete

Pochopenie toho, ako používaťuseStatehák s poliami je rozhodujúci v mnohých aplikáciách v reálnom svete. Napríklad v aplikácii zoznamu úloh môžete použiť pole na uloženie zoznamu úloh. Môžete pridať nové úlohy, označiť ich ako dokončené (čo možno považovať za aktualizáciu) alebo ich zo zoznamu odstrániť.

Ďalší prípad použitia je v aplikácii nákupného košíka. Nákupný košík môže byť reprezentovaný ako súbor položiek. Môžete pridať nové položky do košíka, odstrániť položky alebo aktualizovať množstvo položky v košíku.

Záver

PomocouuseStateháčik s poliami vyžaduje starostlivé zváženie, aby nedošlo k priamej mutácii stavu. Vytvorením nových polí s aktualizovanými hodnotami môžete zabezpečiť, aby sa vaše komponenty React správne vykreslili a zachovali si predvídateľný stav.

Ako dodávateľ háčikov chápeme dôležitosť poskytovania vysokokvalitných riešení. Či už hľadáteZlaté háčiky do kúpeľnealeboKúpeľňové doplnky Háčiky na uteráky, máme širokú škálu produktov, ktoré vyhovujú vašim potrebám. Ak máte záujem o naše produkty alebo máte akékoľvek otázky, neváhajte nás kontaktovať pre diskusiu o obstarávaní.

Referencie

  • Reagujte na oficiálnu dokumentáciu o useState hook
  • JavaScript MDN Web Docs o metódach poľa (filter, mapa, operátor rozšírenia)

Zaslať požiadavku