Sobes.tech
Middle

Ar funkciniame komponente įmanoma suteikti išorinę prieigą prie komponento metodų (duoti ' rankenas' išorėje)?

sobes.tech AI

Atsakymas iš AI

React funkciniuose komponentuose galima suteikti išorinį prieigą prie komponento metodų naudojant forwardRef ir useImperativeHandle.

Tai leidžia 'perduoti' nuorodą ir nustatyti, kurie metodai ar savybės bus prieinamos iš išorės.

Pavyzdys:

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>Skaitiklis: {count}</div>;
});

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

Šiuo būdu, išorinis kodas gali iškviesti increment ir reset metodus komponento.