Sobes.tech
Middle

Hogyan lehet még frissíteni a state-et React-ben (az előző értékkel rendelkező függvény segítségével)?

sobes.tech MI

Válasz az MI-től

A Reactben a állapot frissítésekor gyakran használnak függvényt a setState-ben vagy a useState hookban, figyelembe véve az előző értéket.

A klasszikus változat mellett:

setState(prevState => ({ count: prevState.count + 1 }));

léteznek más módszerek is a frissítésre, például:

  • A frissítési függvény használata funkcionális komponensekben a useState hookkal:
const [count, setCount] = useState(0);

setCount(prevCount => prevCount + 1);
  • A useReducer-ben a státusz frissíthető egy redukeren keresztül, amely megkapja az aktuális állapotot és az akciót:
function reducer(state, action) {
  switch(action.type) {
    case 'increment':
      return { count: state.count + 1 };
    default:
      return state;
  }
}

const [state, dispatch] = useReducer(reducer, { count: 0 });
dispatch({ type: 'increment' });
  • Osztályokban callback használható a setState-ben az előző állapot eléréséhez:
this.setState((prevState) => ({ count: prevState.count + 1 }));

Ezért a függvényes frissítés az előző értékkel a standard és ajánlott módszer, különösen akkor, ha az új állapot a régi értéken alapul, hogy elkerüljük az aszinkron frissítések problémáit.