DevGang
Авторизоваться

Передача данных от дочернего компонента pros к родительскому в React TypeScript

Используя простые методы, можно передавать данные от дочернего элемента к родительскому. Это полезно, например, при создании основного компонента, или при необходимости передать пользовательские элементы в компонент select.

Ниже представлен пример реализации передачи данных с использованием простого подхода:

import React from "react";

// Define the type for the options
type Option = {
  label: string;
  value: string;
};

// Props for the ChildClass component
interface ChildClassProps {
  // A function prop that takes an `Option` and returns a React node
  customItems: (option: Option) => React.ReactNode;
}

const ParentClass: React.FC = () => {
  return (
    <ChildClass
      customItems={(props: Option) => (
        <div>
          <div>{props.value}</div>
        </div>
      )}
    />
  );
};

const ChildClass: React.FC<ChildClassProps> = ({ customItems }) => {
  // Options array with objects that match the `Option` type
  const options: Option[] = [
    { label: "green", value: "green" },
    { label: "blue", value: "blue" },
    { label: "red", value: "red" },
    { label: "yellow", value: "yellow" },
  ];

  return (
    <div>
      <span>Child class</span>
      {/* Iterate over the options and call `customItems` to render the custom content */}
      {options.map((item, index) => (
        <div key={index}>
          {customItems(item)}
        </div>
      ))}
    </div>
  );
};

export default ParentClass;

Компонент ParentClass

ParentClass передает функцию customItems компоненту ChildClass. Эта функция задаёт вид отображения каждого элемента. В customItems можно передать любой пользовательский компонент.

Компонент ChildClass

ChildClass итерирует по массиву опций, вызывая функцию customItems для каждого элемента. Это даёт ParentClass возможность настроить рендеринг опций по своему усмотрению.

Источник:

#React #TypeScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу