Передача данных от дочернего компонента к родительскому компоненту в React может быть достигнута с помощью функции обратного вызова, которая передается в качестве реквизита от родительского компонента к дочернему компоненту. Затем дочерний компонент может вызвать эту функцию обратного вызова, когда он хочет передать данные обратно родительскому компоненту.

Код дочернего компонента.

import React from 'react';

const ChildComponent = ({ onDataChange }) => {
  const handleDataChange = () => {
    onDataChange('Data from the Child');
  };

  return (
    <div>
      <button onClick={handleDataChange}> Send Data</button>
    </div>
  );
};

export default ChildComponent;

Код родительского компонента.

import React,{useState} from 'react';
const ParentComponent = () => {
  const [data, setData] = useState(null);

  const handleDataChange = (dataFromChild) => {
    setData(dataFromChild);
  };

  return (
    <div>
      <ChildComponent onDataChange={handleDataChange} />
      {data && <p> {data}</p>}
    </div>
  );
};

export default ParentComponent;

В этом примере ChildComponent получает реквизит с именем onDataChange, который является функцией обратного вызова. Когда пользователь нажимает кнопку в дочернем компоненте, вызывается функция handleDataChange, которая, в свою очередь, вызывает свойство onDataChange, передавая ему данные из дочернего компонента. Вызывается функция handleDataChange родительского компонента, которая обновляет состояние родительского компонента новыми данными.