Sobes.tech
Middle

Da li je moguće u funkcionalnoj komponenti omogućiti spoljašnji pristup metodama komponente (dati 'ručke' spolja)?

sobes.tech АИ

Одговор од АИ

U funkcionalnim React komponentama, možete omogućiti spoljašnji pristup metodama komponente pomoću forwardRef i useImperativeHandle.

Ovo omogućava 'prosleđivanje' referenci i definisanje koje metode ili svojstva će biti dostupni spolja.

Primer:

import React, { useImperativeHandle, forwardRef, useState } from 'react';

const MyComponent = forwardRef((props, ref) => {
  const [count, setCount] = useState(0);

  useImperativeHandle(ref, () => ({
    increment() {
      setCount(c => c + 1);
    },
    reset() {
      setCount(0);
    }
  }));

  return <div>Brojač: {count}</div>;
});

// Upotreba
// const ref = React.createRef();
// <MyComponent ref={ref} />
// ref.current.increment();

Na ovaj način, spoljašnji kod može pozvati metode increment i reset komponente.